一下是C++中获得文件大小的几种方法:
#include < iostream> #include < io.h> #include < sys\stat.h> #include < afx.h> #define _AFXDLL using namespace std; void main() { // 此文件在工程打开状态下为不可访问 char* filepath = "..\\test.ncb"; // C++获取文件大小方法一 struct _stat info; _stat(filepath, &info); int size = info.st_size; cout< < size< < endl; // C++获取文件大小方法二 FILE* file = fopen(filepath, "rb"); if (file) { int size = filelength(fileno(file)); cout< < size< < endl; fclose(file); } // C++获取文件大小方法三 CFile cfile; if (cfile.Open(filepath, CFile::modeRead)) { int size = cfile.GetLength(); cout< < size< < endl; } // C++获取文件大小方法四 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); } }