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 删除不为空的文件夹.rar"提供的源码是关于如何在VC++环境下编写代码来解决删除非空文件夹问题的一个实例,它展示了如何结合使用Windows API进行深度文件操作。通过学习和理解这段代码,开发者可以更好...
在VC++ 6.0开发环境中,实现文件夹的复制、移动和删除是常见的操作,这对于软件开发或者系统管理来说非常实用。以下是一些关于如何在VC++中处理这些任务的关键知识点: 一、文件和文件夹操作基础 1. 文件路径:在...
在VC++开发环境中,删除文件夹及其内容是常见的任务,特别是在清理临时文件、卸载程序或执行系统维护时。本文将详细介绍三种在MFC(Microsoft Foundation Classes)环境下使用C++在Windows操作系统中删除文件夹及...
VC中的文件操作,判断文件、文件夹是否存在、删除文件夹、求文件夹大小 VC 中的文件操作是一种常见的编程技术,包括判断文件、文件夹是否存在、删除文件夹、求文件夹大小等多种操作。这些操作都是基于 Windows API ...
4. 处理文件:根据需求,可以在这一步进行文件操作,如读取、复制、删除等。 5. 关闭句柄:遍历完成后,记得使用`FindClose`关闭找到的文件句柄。 下面是一个基础的VC++代码示例,演示了如何遍历目录及其子目录: ...
### VC实现文件夹从一个目录下拷贝到另一个目录 #### 概述 在软件开发过程中,经常需要处理文件及文件夹的操作,如复制、移动等。本文将详细介绍如何使用Visual C++(简称VC)来实现文件夹从一个目录复制到另一个...
因此,"VC 删除debug文件夹源代码"的工具应运而生,它的主要目的是帮助开发者自动化清理这些不必要的文件,以优化磁盘空间。 这个工具的运作方式可能是通过遍历指定的目录及其子目录,查找所有".vcproj"或".sln"...
在VC6.0环境下,开发C++程序时,删除文件夹是一个常见的操作,尤其是在系统维护、数据清理或者软件卸载的过程中。本示例提供了一个基于VC6.0的解决方案,利用了C++标准库和Windows API来实现文件夹及其内容的删除。 ...
【VC6.0 文件夹监视程序】是一款基于Visual C++ 6.0开发的应用程序,它的主要功能是实时监控指定目录下的文件活动。通过这款工具,用户能够追踪并记录文件何时被读取、何时被修改等操作,这对于软件开发者、系统管理...
源码 复制和删除整个文件夹的例子,分别采用了通过WinBase.h中的基本操作函数和ShlwApi.h中的SHFileOperation来实现文件夹的复制和删除操作。 工程中包含VC6.0和VS2010两个版本。
该文档记录了如何在VC6中删除指定文件夹下的文件,包含程序代码
在VC++编程环境中,我们经常需要处理文件和文件夹的操作,比如复制、移动或删除等。在这个场景下,"vc文件夹复制的代码"是指使用Visual C++ 6.0来编写程序,实现对本地文件夹进行拷贝的功能。下面我们将深入探讨如何...
当我们需要实现“删除文件夹下所有文件”的功能时,可以利用MFC提供的类和方法来完成。下面将详细介绍如何使用MFC实现这一功能。 首先,我们需要了解MFC中的`CFile`类和`CFileFind`类。`CFile`类用于文件的基本操作...
在VC++编程环境中,创建和删除文件夹是常见的文件系统操作。VC++是Microsoft Visual C++的简称,它是一款强大的Windows平台下的C++开发工具,提供了丰富的库支持和直观的集成开发环境(IDE)。在这个项目中,我们...
在VC++(Visual C++)环境下,递归常用于遍历文件系统,例如在给定的“VC++ 递归文件夹”场景中,我们需要实现的功能是递归地删除指定文件夹下所有符合特定文件名的文件或子文件夹。以下是对这个知识点的详细解释: ...
乌龙寺技术站的BAT强制删除源码,可以强制删除指定文件夹
很不爽这件事情,所以编写这个对非空文件夹进行删除的 函数,仅供参考。 注意:本函数编写以VC6为依据,其中关于文件夹的操作函数 与标准c有所区别。如VC6中的findclose可能需要用c 中的closedir()来代替。
递归删除文件夹 代码简洁易懂
在VC中,可以使用`CloseDevice()`等类似函数来关闭GPIB设备,同时确保打开的文件和创建的文件夹在不再使用时被正确关闭和删除。 综上所述,"VC 控制GPIB 创建文件夹 写LOG"项目涵盖了多方面的知识,包括GPIB设备...
主要用于删除VC编译生成的文件夹debug和release,因为这两个文件夹下的文件太浪费空间了。 利用STL中的queue来存储文件夹名,实现非递归来查找指定的文件夹debug和release。 其实就是找到一个文件夹就加入文件夹队列...