【路径相关方法】4,计算文件夹大小
来源:互联网 发布:js获取input上传文件 编辑:程序博客网 时间:2024/06/10 15:17
1,原理
与前文一样,使用FindFirstFile和FindNextFile 遍历文件夹,通过把所有文件大小相加,得到总大小。
2,实现
32位无符号整数,能表示的大小为:2^32-1 = 4294967295 字节即4GB。
那么大于4GB的得用64位整数表示了,这里用DWORD64,即无符号64位整数。
DWORD64 GetFolderSize(WCHAR* szPath){DWORD64 dwSize = 0;//拷贝一份局部路径WCHAR szFilePath[MAX_PATH] = {0};wcscpy_s(szFilePath,MAX_PATH,szPath);//要查找的所有文件的通配符WCHAR szFileFilter[MAX_PATH] = {0};wcscpy_s(szFileFilter,MAX_PATH,szFilePath);wcscat_s(szFileFilter,MAX_PATH,L"\\*.*");WIN32_FIND_DATA fileinfo;HANDLE hFind = NULL;hFind = FindFirstFile(szFileFilter,&fileinfo);do{if(fileinfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY){if ((0 != wcscmp(fileinfo.cFileName,L".")) && (0 != wcscmp(fileinfo.cFileName,L".."))){//除了"."和".."的文件夹,递归求文件夹大小相加wcscat_s(szFilePath,MAX_PATH,fileinfo.cFileName);dwSize += GetFolderSize(szFilePath);}}else{//是文件,直接加上大小DWORD64 dwFileSize = ((DWORD64)(fileinfo.nFileSizeHigh) * (MAXDWORD+1)) + (DWORD64)(fileinfo.nFileSizeLow); dwSize += dwFileSize;}}while(FindNextFile(hFind,&fileinfo));FindClose(hFind);return dwSize;}
0 0
- 【路径相关方法】4,计算文件夹大小
- 键盘录入一个文件夹路径,可以计算文件夹大小
- 计算文件夹大小两种方法
- 计算文件夹的大小
- 计算文件夹大小
- 计算本地文件夹大小
- PHP计算文件夹大小
- 计算文件夹大小
- Java 计算文件夹大小
- 【路径相关方法】2,判断文件夹是否为空
- 【路径相关方法】5,清空删除文件夹
- VC如何计算文件夹大小
- 计算文件夹得大小和遍历文件夹
- 计算文件夹大小,当前目录下个文件夹的大小
- 【路径相关方法】3,判断某路径的文件和文件夹是否存在
- C#递归实现显示文件夹及所有文件并计算其大小的方法
- 统计某路径下所有文件夹大小
- C#计算一个文件夹的大小
- 求二叉树的深度
- [过年菜谱之]清蒸鲍鱼
- asmlinkage
- 十五.Java基础加强(一)
- 选举计数
- 【路径相关方法】4,计算文件夹大小
- 3大背包问题的个人解释
- [过年菜谱之]红烧甲鱼
- 十三.Java基础_网络编程
- 简单的多线程实例
- CodeForces 385D Bear and Floodlight
- Gas Station
- 大数据处理书籍
- [过年菜谱之]杭椒牛柳