获取文件夹大小的函数-已在VC验证
2008-05-28 17:08
447 查看
//Get size of a whole dir
//return bytes
DWORD64 GetFolderSize(LPCTSTR szPath, DWORD *dwFiles, DWORD *dwFolders)
{
TCHAR szFileFilter[512];
TCHAR szFilePath[512];
HANDLE hFind = NULL;
WIN32_FIND_DATA fileinfo;
DWORD64 dwSize = 0;
strcpy(szFilePath,szPath);
strcat(szFilePath,"//");
strcpy(szFileFilter,szFilePath);
strcat(szFileFilter,"*.*");
hFind = FindFirstFile(szFileFilter,&fileinfo);
do
{
if(fileinfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if (!strcmp(fileinfo.cFileName,".") || !strcmp(fileinfo.cFileName,".."))
{
//Do nothing for "." and ".." folders
}
else
{
TCHAR sztmp[512];
strcpy(sztmp,szFilePath);
strcat(sztmp,fileinfo.cFileName);
dwSize = dwSize + GetFolderSize(sztmp);
if(dwFolders != NULL)
{
++(*dwFolders);
}
}
}
else
{
if(dwFiles != NULL)
{
++(*dwFiles);
}
}
dwSize += fileinfo.nFileSizeLow;
}while(FindNextFile(hFind,&fileinfo));
FindClose(hFind);
return dwSize;
}
//return bytes
DWORD64 GetFolderSize(LPCTSTR szPath, DWORD *dwFiles, DWORD *dwFolders)
{
TCHAR szFileFilter[512];
TCHAR szFilePath[512];
HANDLE hFind = NULL;
WIN32_FIND_DATA fileinfo;
DWORD64 dwSize = 0;
strcpy(szFilePath,szPath);
strcat(szFilePath,"//");
strcpy(szFileFilter,szFilePath);
strcat(szFileFilter,"*.*");
hFind = FindFirstFile(szFileFilter,&fileinfo);
do
{
if(fileinfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if (!strcmp(fileinfo.cFileName,".") || !strcmp(fileinfo.cFileName,".."))
{
//Do nothing for "." and ".." folders
}
else
{
TCHAR sztmp[512];
strcpy(sztmp,szFilePath);
strcat(sztmp,fileinfo.cFileName);
dwSize = dwSize + GetFolderSize(sztmp);
if(dwFolders != NULL)
{
++(*dwFolders);
}
}
}
else
{
if(dwFiles != NULL)
{
++(*dwFiles);
}
}
dwSize += fileinfo.nFileSizeLow;
}while(FindNextFile(hFind,&fileinfo));
FindClose(hFind);
return dwSize;
}
相关文章推荐
- VC-获取文件夹中的指定类型的所有文件名和文件大小
- PHP获取文件夹大小函数用法实例
- VC-获取文件夹中的指定类型的所有文件名和文件大小
- VC通过WIN32_FIND_DATA和FindFirstFile获取文件夹大小代码
- VC++ 获取文件夹大小
- PHP获取文件夹大小函数
- PHP获取文件夹大小函数用法实例
- VC++获取当前系统时间日期 GetSystemTime()函数的用法
- vc++ 获取文件夹大小
- 获取文件夹大小(PHP函数)
- VC 获取函数执行时间GetTicketCount()
- VC获取屏幕分辨率及大小相关(转)
- vc根据域名获取IP地址 gethostbyname()函数
- 获取某文件沙盒路径 删除对应文件 获取文件夹总大小
- 获取函数的大小
- [python]获取文件夹大小
- VC++获取当前系统时间日期 GetSystemTime()函数的用法
- VC++实现文件夹时间属性的获取与更改
- GetIconInfo函数获取ICON的大小
- VC获取屏幕分辨率大小