VC如何计算文件夹大小

来源:互联网 发布:fc2域名注册 编辑:程序博客网 时间:2024/06/10 12:54

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文件夹(刀塔安装文件夹)的实际大小如下


本篇完

0 0