c++ windows GetFileSize()
时间: 2024-03-09 20:46:01 浏览: 128
在 Windows 平台上,可以使用 Win32 API 中的 GetFileSize() 函数来获取文件的大小。该函数的原型如下:
```c++
DWORD GetFileSize(
HANDLE hFile,
LPDWORD lpFileSizeHigh
);
```
其中,`hFile` 参数是文件的句柄,可以使用 CreateFile() 函数来创建文件句柄;`lpFileSizeHigh` 参数是一个指向用于返回文件大小的高 32 位值的指针。如果文件大小不超过 4GB,则将其设置为 NULL。
下面是一个示例代码,演示如何使用 GetFileSize() 函数获取文件大小:
```c++
#include <Windows.h>
#include <iostream>
int main()
{
HANDLE hFile = CreateFile(
"test.txt",
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL
);
if (hFile == INVALID_HANDLE_VALUE)
{
std::cerr << "Failed to open file!" << std::endl;
return 1;
}
DWORD file_size = GetFileSize(hFile, NULL);
if (file_size == INVALID_FILE_SIZE)
{
std::cerr << "Failed to get file size!" << std::endl;
CloseHandle(hFile);
return 1;
}
std::cout << "File size: " << file_size << " bytes" << std::endl;
CloseHandle(hFile);
return 0;
}
```
在上面的代码中,首先使用 CreateFile() 函数创建文件句柄,然后使用 GetFileSize() 函数获取文件大小。最后,使用 CloseHandle() 函数关闭文件句柄。
阅读全文