(转)C/C++多种方法获取文件大小
#include <iostream> #include <io.h> #include <sysstat.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); } }
//注以下是个人读取文件的方法
FILE* pFile = NULL; if (_tfopen_s(&pFile, tchFilePath, _T("r")) == 0) { //获取文件size,下面的获取文件大小也可以 // struct _stat info; // _stat(tchFilePath, &info); // int lLen = info.st_size; //上面的方法也可以 int lLen = _filelength(_fileno(pFile)); char* pchTemp = new char[lLen + 1]; memset(pchTemp, 0, (lLen + 1) * sizeof(char)); fread(pchTemp, sizeof(char), lLen, pFile); fclose(pFile); }
转自:http://www.cnblogs.com/cxun/archive/2009/02/24/1397153.html
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇:没有了