获取文件夹的大小(大小为字节数)

来源:互联网 发布:手机淘宝订单无故消失 编辑:程序博客网 时间:2024/06/05 09:17
//功能:获取文件夹大小//参数://lpFolderPath 文件夹路径DWORD64 GetFolderSize(IN PTCHAR lpFolderPath){WIN32_FIND_DATAFileData;wstringstrFileName;TCHAR stTempPath[MAX_PATH] = {0};// 递归的时候用到的临时参数DWORD64 dwFileSize = 0;strFileName= lpFolderPath;if ( 0 == strFileName.size()){return FALSE;}if (3 == strFileName.size() && L'\\' == strFileName[2]){strFileName += L"*";}else{strFileName += L"\\*";}HANDLE   hLisFile =::FindFirstFile(strFileName.data(),&FileData);if (INVALID_HANDLE_VALUE == hLisFile){return 0;}do {if(!lstrcmp(FileData.cFileName,L".") || !lstrcmp(FileData.cFileName,L"..")){continue;}if(FileData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY){wsprintf(stTempPath,L"%s%s%s",lpFolderPath,L"\\",FileData.cFileName);// 开始递归dwFileSize += GetFolderSize(stTempPath);}else{// 高低字位的组合DWORD64 dwFileTempHigh = FileData.nFileSizeHigh;DWORD64 dwFileTempLow = FileData.nFileSizeLow;dwFileTempHigh = (dwFileTempHigh<<32);dwFileTempHigh = (dwFileTempHigh|dwFileTempLow);dwFileSize += dwFileTempHigh;}} while (::FindNextFile(hLisFile,&FileData));::FindClose(hLisFile);return dwFileSize;}

Win7平台,vs2010工具测试通过 

0 0
原创粉丝点击