一、通过 CFile 类的成员
函数 GetLength 获取
文件大小;二、通过 CFileFind 类的成员函数 GetLength 获取
文件大小;下面详细说明这两种方法:一、CFile 类1、通过 Open 成员函数打开文件;2、通过 GetLength 成员函数获取文件大小;3、通过 Close 关闭文件。CFile fCString strf.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 finderCString strfinder.FindFile("e:\test1.wav")finder.FindNextFile()str.Format("File size : %d",finder.GetLength())finder.Close()MessageBox(str)以上是 MFC 的方法,下面是 SDK 方法:一、通过 GetFileSize API 函数获取文件大小;HANDLE hFileDWORD dwFileSize = 0char 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 lpFindFileDataHANDLE hFindFilechar szData[30]lpFindFileData = new WIN32_FIND_DATAhFindFile = FindFirstFile("e:\test1.wav",lpFindFileData)FindNextFile(hFindFile,lpFindFileData)MessageBox(NULL,szData,"FileSize",MB_ICONINFORMATION)delete lpFindFileData说明:以上代码都没有检查函数返回值,读者在实际编写程序时应该检查文件打开是否成功。另外,CFile 类在实现时,是从文件头移动到文件尾,而不是用 GetFileSize API 函数实现的,有兴趣的朋友可以看看MFC源代码。体验新版博客1、首先使用fseek函数调整到末尾,使用ftell函数获取大小。
2、然后使用lseek函数调整到末尾,此时返回值就是文件大小。
3、最后使用stat/fstat函数获取,成员st_size是文件大小。
评论列表(0条)