如何获取文件的大小?

 我来答
谁人子手心7551
推荐于2017-11-26 · TA获得超过204个赞
知道答主
回答量:107
采纳率:0%
帮助的人:141万
展开全部
一、通过 CFile 类的成员函数 GetLength 获取文件大小;二、通过 CFileFind 类的成员函数 GetLength 获取文件大小;下面详细说明这两种方法:一、CFile 类1、通过 Open 成员函数打开文件;2、通过 GetLength 成员函数获取文件大小;3、通过 Close 关闭文件。CFile f; CString str;f.Open("e:\test1.wav",CFile::modeRead|CFile::shareDenyNone); str.Format("File size : %d",f.GetLength()); f.Close();MessageBox(str);二、CFileFind 类1、通过 FindFile 开始查找文件;2、通过 FindNextFile 获取文件信息;3、通过 GetLength 获取文件大小;4、通过 Close 关闭查找。CFileFind finder; CString str;finder.FindFile("e:\test1.wav"); finder.FindNextFile(); str.Format("File size : %d",finder.GetLength()); finder.Close();MessageBox(str); 以上是 MFC 的方法,下面是 SDK 方法:一、通过 GetFileSize API 函数获取文件大小;HANDLE hFile; DWORD dwFileSize = 0; char szData[30];hFile = CreateFile("e:\test1.wav",GENERIC_READ,FILE_SHARE_READ,NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);dwFileSize = GetFileSize(hFile,NULL);CloseHandle(hFile);sprintf(szData,"File Size : %d",dwFileSize);MessageBox(NULL,szData,"FileSize",MB_ICONINFORMATION); 二、通过 FindFirstFile 和 WIN32_FIND_DATA 方法获取文件大小;LPWIN32_FIND_DATA lpFindFileData; HANDLE hFindFile; char szData[30];lpFindFileData = new WIN32_FIND_DATA;hFindFile = FindFirstFile("e:\test1.wav",lpFindFileData); FindNextFile(hFindFile,lpFindFileData); MessageBox(NULL,szData,"FileSize",MB_ICONINFORMATION);delete lpFindFileData;说明:以上代码都没有检查函数返回值,读者在实际编写程序时应该检查文件打开是否成功。另外,CFile 类在实现时,是从文件头移动到文件尾,而不是用 GetFileSize API 函数实现的,有兴趣的朋友可以看看MFC源代码。体验新版博客
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式