更新时间:2016-01-12 22:43:13浏览次数:1+次
int static iEmptyDir=0;
int static iTemp=0;
在一个文件夹中,我们要统计子文件夹和文件的总数,所有设置了一个局部变量。当子文件夹为空文件夹时,将会被删掉。删掉之后,就要将上一级所记录的子文件夹和文件的个数减一。int static iEmptyDir=0;
int static GetFilePath(vector<CString>& vFilePathList,CString strDir)
{
int ifileCount=0;//当前文件夹下的文件夹和文件的个数
CFileFind finder;
BOOL hasFile = finder.FindFile(strDir+_T("*.*"));//总文件夹,开始遍历
while(hasFile)
{
hasFile = finder.FindNextFile();//查找文件
CString filename = finder.GetFilePath();//获取文件的路径,可能是文件夹,可能是文件
if (!(finder.IsDirectory()))
{
ifileCount++;
//如果是文件则加入文件列表
vFilePathList.push_back(filename);//将一个文件路径加入容器
}
else
{
//递归遍历用户文件夹,跳过非用户文件夹
if(!(finder.IsDots()||finder.IsHidden()||finder.IsReadOnly()))
{
ifileCount++;
if(0==GetFilePath(vFilePathList,filename+_T("/")))//递归调用自己,返回这个文件夹的子文件夹和文件的个数(只有一级)
{
//空文件夹
::RemoveDirectory(filename);//删除空文件夹
iEmptyDir++;
}
}
}
}
return ifileCount;
}
我将整个函数都列出来了,你可以自由使用。可以根据自己的需要做一些处理。 相关资讯