C/C++多種方法獲取文件大小
- #include
- #include
- #include
- #include
- #define _AFXDLL
- using namespace std;
- void main()
- {
- // 此文件在工程打開狀態下為不可訪問
- char* filepath = "..\test.ncb";
- // 方法一
- struct _stat info;
- _stat(filepath, &info);
- int size = info.st_size;
- cout<
- // 方法二
- FILE* file = fopen(filepath, "rb");
- if (file)
- {
- int size = filelength(fileno(file));
- cout<
- fclose(file);
- }
- // 方法三
- CFile cfile;
- if (cfile.Open(filepath, CFile::modeRead))
- {
- int size = cfile.GetLength();
- cout<
- }
- // 方法四
- HANDLE handle = CreateFile(filepath, FILE_READ_EA, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
- if (handle != INVALID_HANDLE_VALUE)
- {
- int size = GetFileSize(handle, NULL);
- cout<
- CloseHandle(handle);
- }
- }
也可以直接調用WinAPI函數GetFileSize嘛,
- DWORD WINAPI GetFileSize(
- __in HANDLE hFile,
- __out LPDWORD lpFileSizeHigh
- );
支持Win2000及以後的系統