GetFileSizeEx c++代码
时间: 2023-10-03 19:02:47 浏览: 165
以下是使用 WinAPI 函数 `GetFileSizeEx` 获取文件大小的 C++ 代码示例:
```c++
#include <Windows.h>
#include <iostream>
int main() {
HANDLE hFile = CreateFile(TEXT("file.txt"), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile != INVALID_HANDLE_VALUE) {
LARGE_INTEGER liFileSize;
if (GetFileSizeEx(hFile, &liFileSize)) {
std::cout << "File size is " << liFileSize.QuadPart << " bytes." << std::endl;
}
else {
std::cerr << "Failed to get file size. Error code: " << GetLastError() << std::endl;
}
CloseHandle(hFile);
}
else {
std::cerr << "Failed to open file. Error code: " << GetLastError() << std::endl;
}
return 0;
}
```
上述代码中,首先使用 `CreateFile` 函数打开文件,然后使用 `GetFileSizeEx` 函数获取文件大小。如果成功获取文件大小,则输出文件大小,否则输出错误信息。
需要注意的是,`GetFileSizeEx` 函数返回的文件大小是 `LARGE_INTEGER` 类型,需要使用 `QuadPart` 成员获取其真实数值。同时,如果文件大小超过了 4GB,应该使用 `GetFileSizeEx` 函数而不是 `GetFileSize` 函数,因为后者只能获取 4GB 以内的文件大小。
阅读全文