概述
方法一: WIN32_FIND_DATA fileInfo; HANDLE hFind; DWORD fileSize; const char *fileName = 文件的路径及名字; hFind = FindFirstFile(fileName ,&fileInfo); if(hFind != INVALID_HANDLE_VALUE) fileSize = fileInfo.nFileSizeLow; FindClose(hFind); 方法二: HANDLE hFile; // the file handle DWORD dwFileSize; // temporary storage for file sizes // Create the test file. Open it "Create Always" to overwrite any // existing file. The data is re-created below. hFile = CreateFile(lpcTheFile, GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile == INVALID_HANDLE_VALUE) { printf("hFile is NULLn"); return 4; } dwFileSize = GetFileSize(hFile, NULL); printf("hFile size: %10dn", dwFileSize); ************************************************************************************** C和C++获取文件大小的方法总结 2008年03月31日 星期一 14:21 1.MFC中的方法:(C++) CFileStatus status; CFile::GetStatus("D:\test.txt",status); long lSizeOfFile; lSizeOfFile = status.m_size; lSizeOfFile的值就是D:\test.txt文件的大小 2.标准C获得文件大小的5种方法 (注意:"__FILE__"指的是当前文件,你可以改为有效路径的目标文件,比如"D:\test.txt") #include "stdafx.h" #include "stdio.h" #include <sys/stat.h> #include <io.h> #include <FCNTL.H> int getfilesize() { int iresult; struct _stat buf; iresult = _stat(__FILE__,&buf); if(iresult == 0) { return buf.st_size; } return NULL; } int getfilesize01() { int fp; fp=_open(__FILE__,_O_RDONLY); if(fp==-1) return NULL; return _filelength(fp); //return NULL; } int getfilesize02() { int fp; fp=_open(__FILE__,_O_RDONLY); if(fp==-1) return NULL; return _lseek(fp,0,SEEK_END); //return NULL; } int getfilesize03() { int fp; fp=_open(__FILE__,_O_RDONLY); if(fp==-1) return NULL; return _lseek(fp,0,SEEK_END); //return NULL; } int getfilesize04() { FILE *fp; if((fp=fopen(__FILE__,"r"))==NULL) return 0; fseek(fp,0,SEEK_END); return ftell(fp); //return NULL; } int getfilesize05() { FILE *fp; char str[1]; if((fp=fopen(__FILE__,"rb"))==NULL) return 0; for(int i = 0;!feof(fp);i++) { fread(&str,1,1,fp); } return i - 1; //return NULL; } int main(int argc, char* argv[]) { printf("getfilesize()=%dn",getfilesize()); printf("getfilesize01()=%dn",getfilesize01()); printf("getfilesize02()=%dn",getfilesize02()); printf("getfilesize03()=%dn",getfilesize03()); printf("getfilesize04()=%dn",getfilesize04()); printf("getfilesize05()=%dn",getfilesize05()); return 0; } ************************************************************************************** VC获取文件夹大小代码: 以下是代码片段: DWORD64 GetFolderSize(LPCTSTR szPath, DWORD *dwFiles, DWORD *dwFolders) { TCHAR szFileFilter[512]; TCHAR szFilePath[512]; HANDLE hFind = NULL; WIN32_FIND_DATA fileinfo; DWORD64 dwSize = 0; strcpy(szFilePath,szPath); strcat(szFilePath,"\"); strcpy(szFileFilter,szFilePath); strcat(szFileFilter,"*.*"); hFind = FindFirstFile(szFileFilter,&fileinfo); do { if(fileinfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { if (!strcmp(fileinfo.cFileName,".") || !strcmp(fileinfo.cFileName,"..")) { //Do nothing for "." and ".." folders } else { TCHAR sztmp[512]; strcpy(sztmp,szFilePath); strcat(sztmp,fileinfo.cFileName); dwSize = dwSize + GetFolderSize(sztmp); if(dwFolders != NULL) { ++(*dwFolders); } } } else { if(dwFiles != NULL) { ++(*dwFiles); } } dwSize += fileinfo.nFileSizeLow; }while(FindNextFile(hFind,&fileinfo)); FindClose(hFind); return dwSize; }
最后
以上就是矮小仙人掌为你收集整理的[转]VC++获取文件大小集锦的全部内容,希望文章能够帮你解决[转]VC++获取文件大小集锦所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复