win32 获取文件大小
时间: 2023-08-19 15:04:02 浏览: 48
在 Win32 API 中,可以使用 GetFileSize 函数来获取文件的大小。
该函数的原型如下:
```
DWORD GetFileSize(
HANDLE hFile,
LPDWORD lpFileSizeHigh
);
```
其中,参数含义如下:
- hFile:文件句柄。
- lpFileSizeHigh:指向一个 DWORD 变量的指针,用于存储文件大小的高 32 位。如果文件大小小于等于 4GB,则该参数为 NULL。
如果函数执行成功,返回文件的大小,单位为字节。如果函数执行失败,返回 INVALID_FILE_SIZE。
示例代码如下:
```c++
#include <Windows.h>
#include <iostream>
int main()
{
HANDLE hFile = CreateFile(
"filename.txt",
GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL
);
if (hFile == INVALID_HANDLE_VALUE)
{
std::cerr << "Failed to open file!" << std::endl;
return -1;
}
DWORD fileSize = GetFileSize(hFile, NULL);
if (fileSize == INVALID_FILE_SIZE)
{
std::cerr << "Failed to get file size!" << std::endl;
}
else
{
std::cout << "File size is " << fileSize << " bytes." << std::endl;
}
CloseHandle(hFile);
return 0;
}
```
在这个例子中,我们打开了一个名为 filename.txt 的文件,并获取了它的大小。如果获取成功,我们将输出文件的大小;否则,我们将输出错误信息。注意,最后要关闭文件句柄。