|
在VC++中,可以使用Windows API函数来获取文件的大小。以下是一个简单的示例,演示如何使用`GetFileSize`函数来获取指定文件的大小。
- ```cpp
- #include <windows.h>
- #include <iostream>
- int main() {
- // 指定要获取大小的文件路径
- const char* filePath = "C:\\path\\to\\your\\file.txt";
- // 打开文件
- HANDLE hFile = CreateFileA(
- filePath, // 文件路径
- GENERIC_READ, // 读取权限
- 0, // 不共享
- NULL, // 默认安全属性
- OPEN_EXISTING, // 打开现有文件
- FILE_ATTRIBUTE_NORMAL, // 文件属性
- NULL // 不使用模板文件
- );
- if (hFile == INVALID_HANDLE_VALUE) {
- std::cerr << "无法打开文件: " << GetLastError() << std::endl;
- return 1;
- }
- // 获取文件大小
- DWORD fileSize = GetFileSize(hFile, NULL);
- if (fileSize == INVALID_FILE_SIZE) {
- std::cerr << "获取文件大小失败: " << GetLastError() << std::endl;
- CloseHandle(hFile);
- return 1;
- }
- // 输出文件大小
- std::cout << "文件大小: " << fileSize << " 字节" << std::endl;
- // 关闭文件句柄
- CloseHandle(hFile);
- return 0;
- }
- ```
复制代码
### 代码说明:
1. **CreateFileA**: 用于打开文件,并返回一个文件句柄。
2. **GetFileSize**: 用于获取文件的大小,返回值是文件的字节数。
3. **CloseHandle**: 用于关闭文件句柄,释放资源。
### 注意事项:
- 确保文件路径正确,并且程序有权限访问该文件。
- 如果文件很大(超过4GB),可以使用`GetFileSizeEx`函数来获取64位文件大小。
下面是将获取文件大小的代码封装为一个函数的示例。这个函数接受文件路径作为参数,并返回文件的大小(以字节为单位):
### 代码说明:
1. **GetFileSizeByPath**: 这个函数接受一个文件路径作为参数,并返回该文件的大小(以字节为单位)。如果获取文件大小失败,返回`INVALID_FILE_SIZE`。
2. **main函数**: 在主函数中调用`GetFileSizeByPath`,并输出文件大小。
### 使用方法:
- 替换`filePath`变量中的路径为你要检查的文件的实际路径。
- 编译并运行程序,它将输出指定文件的大小。
|
|