问一个文件夹删除的问题 用mfc写的程序,我需要删除指定路径下所有的空文件夹,文件夹可能层数很深,有的文件夹里可能有文件,有的没有,把没有的删掉,不知道意思是否描述的清楚了。不知道怎么做了,用cfilefind有问题,没能删掉空文件夹。求助各位大神。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 void RemoveDirs(CString vi_csPath){ CFileFind finder; bool bWorking = finder.FindFile(vi_csPath); while(bWorking) { bWorking = finder.FindNextFile(); if (finder.IsDirectory() && !finder.IsDots()) { RemoveDirs(finder.GetFilePath()); RemoveDirectory(finder.GetFilePath()); } else { //文件如何处理?我需要保留下来。而且遍历,需要遍历到最深层才能知道是否有文件存在吧。不知道如何实现 } } return;}请指导 RemoveDirectory 本身就只能空删除文件夹 有文件的删除会返回FALSE//稍改一下 试试看void RemoveDirs(CString vi_csPath){ CFileFind finder; CString strPath = vi_csPath; if(strPath.Right(1) != _T('\\')) strPath += _T('\\'); strPath += _T("*.*"); bool bWorking = finder.FindFile(strPath); while(bWorking) { bWorking = finder.FindNextFile(); if (finder.IsDirectory() && !finder.IsDots()) { RemoveDirs(finder.GetFilePath()); RemoveDirectory(finder.GetFilePath()); } } finder.Close(); return;} 我这儿直接UploadDataMFC.exe 中的 0x7c92e8e5 处未处理的异常: 0xC0000005: 写入位置 0x00030f50 时发生访问冲突 按逻辑应该是,找 目录进入目录在目录中找文件。记录文件个数。退出这个目录查文件个数是不是0空。是 删除该目录。// 简单的找目录RemoveDirectory 本身就只能空删除文件夹 有文件的删除会返回FALSE找 下个目录 如何将一个CString的变量值写入到剪贴板中? 大家帮忙解决一下 error LNK2001 错误 问题 vista下加载activex的问题 为什么白色刷子没把背景图覆盖掉 自制浏览器中拦截改变IE浏览器大小的信息 哪位大哥写过的Gina支持xp中的terminal service?给点思路?愁着呢。 奇怪,为什么我加的菜单项的ID在classwizard里面找不到?消息相应只能手动添加了? 调查,用VC做管理系统多不多,俺正准备这样做.又有点担心工程周期 求教A*算法~~~ 数据库设计问题 DLL多线程同步使用CSingleLock 有时候会异常崩溃 SetCommState出错
void RemoveDirs(CString vi_csPath)
{
CFileFind finder;
bool bWorking = finder.FindFile(vi_csPath);
while(bWorking)
{
bWorking = finder.FindNextFile();
if (finder.IsDirectory() && !finder.IsDots())
{
RemoveDirs(finder.GetFilePath());
RemoveDirectory(finder.GetFilePath());
}
else
{
//文件如何处理?我需要保留下来。而且遍历,需要遍历到最深层才能知道是否有文件存在吧。不知道如何实现
}
}
return;
}
请指导
{
CFileFind finder;
CString strPath = vi_csPath;
if(strPath.Right(1) != _T('\\'))
strPath += _T('\\');
strPath += _T("*.*");
bool bWorking = finder.FindFile(strPath);
while(bWorking)
{
bWorking = finder.FindNextFile();
if (finder.IsDirectory() && !finder.IsDots())
{
RemoveDirs(finder.GetFilePath());
RemoveDirectory(finder.GetFilePath());
}
}
finder.Close();
return;
}
找 目录
进入目录
在目录中找文件。
记录文件个数。
退出这个目录
查文件个数是不是0空。
是 删除该目录。
// 简单的
找目录
RemoveDirectory 本身就只能空删除文件夹 有文件的删除会返回FALSE
找 下个目录