void DeleteDirectory(CString strDir)
{
if(strDir.IsEmpty())
return;
// 首先删除文件及子文件夹
CFileFind ff;
BOOL bFound = ff.FindFile(strDir+"\\*", 0);
while(bFound)
{
bFound = ff.FindNextFile();
if(ff.GetFileName()=="."||ff.GetFileName()=="..")
continue;
// 去掉文件(夹)只读等属性
SetFileAttributes(ff.GetFilePath(), FILE_ATTRIBUTE_NORMAL);
if(ff.IsDirectory())
{
// 递归删除子文件夹
DeleteDirectory(ff.GetFilePath());
RemoveDirectory(ff.GetFilePath());
}
else
{
// 删除文件
DeleteFile(ff.GetFilePath());
}
}
ff.Close();
// 然后删除该文件夹
RemoveDirectory(strDir);
}
***************************
第二方法
BOOL DeleteDirectory(LPCTSTR DirName)
{
CFileFind tempFind;
char tempFileFind[200];
sprintf(tempFileFind,"%s\\*.*",DirName);
BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileFind);
while(IsFinded)
{
IsFinded=(BOOL)tempFind.FindNextFile();
if(!tempFind.IsDots()) // 如果不是'.'或者'..'
{
char foundFileName[200];
strcpy(foundFileName,tempFind.GetFileName().GetBuffer(200));
if(tempFind.IsDirectory()) //是否是目录
{
char tempDir[200];
sprintf(tempDir,"%s\\%s",DirName,foundFileName);
DeleteDirectory(tempDir);
}
else //若是文件,则删除
{
char tempFileName[200];
sprintf(tempFileName,"%s\\%s",DirName,foundFileName);
DeleteFile(tempFileName);
}
}
}
tempFind.Close();
if(!RemoveDirectory(DirName))
{
AfxMessageBox("删除目录失败!",MB_OK);
return FALSE;
}
return TRUE;
}
以上代码在Windows2000,vc++6.0下调试通过
分享到:
相关推荐
VC 删除不为空的文件夹,通常情况下,删除的文件夹中都是带有文件的,那么有时候会弹出一个奇怪的提示:“删除的文件夹非空”,这是怎么一回事呢?希望这个源码能为你找到答案。
用vc6.0做的可以实现文件夹的复制,移动,删除。并且有文件说明。 复制、移动、删除的文件夹下的所有文件包括子文件夹。 使用时注意在代码中修改所复制、移动、删除的文件夹路径,就可以使用了。
vc中删除文件夹以及文件夹中的内容的三种方法,以及解决XP删除文件夹出错的方法!!
VC中的文件操作,判断文件、文件夹是否存在 、删除文件夹、求文件夹大小.很详细
源码 复制和删除整个文件夹的例子,分别采用了通过WinBase.h中的基本操作函数和ShlwApi.h中的SHFileOperation来实现文件夹的复制和删除操作。 工程中包含VC6.0和VS2010两个版本。
用第归思想删除文件夹,是用VC6.0建立的工程,用VC6.0直接打开运行即可。
vc 创建-删除文件夹!已经调试成功!vc 创建-删除文件夹!已经调试成功!
输入目录,可以自动把目录下所以vc工程中的debug文件自动删除,可以节约磁盘空间保存。
用MFC实现删除文件夹下所有文件!
该文档记录了如何在VC6中删除指定文件夹下的文件,包含程序代码
乌龙寺技术站的BAT强制删除源码,可以强制删除指定文件夹
选择一个文件夹,递归删除文件夹下所有符合文件名的文件或者文件夹
很不爽这件事情,所以编写这个对非空文件夹进行删除的 函数,仅供参考。 注意:本函数编写以VC6为依据,其中关于文件夹的操作函数 与标准c有所区别。如VC6中的findclose可能需要用c 中的closedir()来代替。
递归删除文件夹 代码简洁易懂
主要用于删除VC编译生成的文件夹debug和release,因为这两个文件夹下的文件太浪费空间了。 利用STL中的queue来存储文件夹名,实现非递归来查找指定的文件夹debug和release。 其实就是找到一个文件夹就加入文件夹队列...
文件夹监测工具VC源代码 监测文件夹内的文件添加,删除,改动等 这个代码是网上搜到的,源代码中有作者的出处
vc工程编译会生成占用大量空间的中间文件,写这个小程序的初衷就是删除下面vc自动生成的,留下有用的源代码好打包,当然你也可以用作它用. 使用前可以先删除回收站,这样方便批量恢复这一次的删除 取消掉了大的MFC90....
1. VC6 只能在系统中存在一份,继续之前,必须删除系统中已经安装的 VC6; 2. 将下载的压缩包解压缩; 3. 执行 setup,打开 VC6 设置窗口; 4. 点“修复 VC6”修复其他 VC6 对系统造成的错误(新装系统无需执行这步...
一个监视文件夹变化的小工具,可以监视指定文件夹里文件的删除,重命名,更改,新增, 还可以指定监视的文件类型。 支持保存监视结果 支持最小化到托盘 使用语言:VC# 编程工具:VS2005
使用批处理删除VC编译时产生的临时文件和其它不必要的文件,减少占用的硬盘空间,可用于VC6-VC2010。 使用时把该批处理文件放到要清理的文件夹下,运行后会把该文件夹及其子文件夹下所有符合扩展名的文件都删除掉。...