C/C++多种方法获取文件大小
C/C++多种方法获取文件大小
#include <iostream> #include <io.h> #include <sys\stat.h> #include <afx.h> #define _AFXDLL using namespace std; void main() { // 此文件在工程打开状态下为不可访问 char* filepath = "..\\test.ncb"; // 方法一 struct _stat info; _stat(filepath, &info); int size = info.st_size; cout<<size<<endl; // 方法二 FILE* file = fopen(filepath, "rb"); if (file) { int size = filelength(fileno(file)); cout<<size<<endl; fclose(file); } // 方法三 CFile cfile; if (cfile.Open(filepath, CFile::modeRead)) { int size = cfile.GetLength(); cout<<size<<endl; } // 方法四 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<<size<<endl; CloseHandle(handle); } } |
也可以直接调用WinAPI函数GetFileSize嘛,
DWORD WINAPI GetFileSize(
__in HANDLE hFile,
__out LPDWORD lpFileSizeHigh
);
支持Win2000及以后的系统