VC如何计算文件夹大小
VC如何计算文件夹大小
百度了几篇“VC下如何计算文件夹大小”但是发现代码好像有点问题,所以码了这段代码
main.cpp
// test.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <windows.h> #include <iostream> #include <string> using namespace std; /* * 取得指定文件夹大小 */ void getFoldersize(const char* path, unsigned __int64 *size) { if (FILE_ATTRIBUTE_DIRECTORY == GetFileAttributes(path)) { WIN32_FIND_DATAA fad; HANDLE hfile = FindFirstFileA((string(path) + "\" + "*.*").c_str(), &fad); BOOL result = true; while (result) { if (string(fad.cFileName) != string(".") && string(fad.cFileName) != string("..")) { getFoldersize((string(path) + "\" + fad.cFileName).c_str(), size); } result = FindNextFileA(hfile, &fad); } FindClose(hfile); } else { WIN32_FILE_ATTRIBUTE_DATA fad; if (GetFileAttributesExA(path, GetFileExInfoStandard, &fad)) *size += ((ULONG64)fad.nFileSizeHigh & 0xffffffff) << 32 | (ULONG64)fad.nFileSizeLow; } } int _tmain(int argc, _TCHAR* argv[]) { if (argc != 2) { cout << "输入路径" << endl; return -1; } unsigned __int64 foldersize = 0; getFoldersize(argv[1], &foldersize); cout << argv[1] << "文件夹大小为:" << foldersize << "字节" << endl; return 0; }
getFoldersize函数接受路径名(例如d:\data2)之后计算data2文件夹包含所有内容大小。
测试图
data2文件夹(刀塔安装文件夹)的实际大小如下
本篇完
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。