怎么删除目录??

tobato 2001-10-08 04:56:26
用RemoveDirectory()只能删除空目录, 要删除整个目录怎么删除目录里的文件??
...全文
412 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
tobato 2001-10-21
  • 打赏
  • 举报
回复
怎么不能给分?
Colorstone0823 2001-10-08
  • 打赏
  • 举报
回复
用SHFileOperation
kingzai 2001-10-08
  • 打赏
  • 举报
回复
上面有一些错的地方,大意是对的,见谅
kingzai 2001-10-08
  • 打赏
  • 举报
回复
和拷贝文件的方法简直一模一样,我记得有好几个人问过这个问题,用递归是比较好的。
if( FILE_ATTRIBUTE_DIRECTORY == ::GetFileAttributes( lpSrcFile ) &&
FILE_ATTRIBUTE_DIRECTORY == ::GetFileAttributes( lpDstFile ) )//同是目录
{

WIN32_FIND_DATA FindFileData;

TCHAR FileName[_MAX_PATH];
#ifdef _UNICODE
wcscpy( FileName , lpSrcFile );
wcscat( FileName , _T("\\*.*") );
#else
strcpy( FileName , lpSrcFile );
strcat( FileName , _T("\\*.*") );
#endif

HANDLE hFindFile = ::FindFirstFile( FileName , &FindFileData );
if( INVALID_HANDLE_VALUE == hFindFile )
{
return FALSE;
}

while( ::FindNextFile( hFindFile, &FindFileData ) )
{
if(!( FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))//不是目录
{
CString strSrcPathName( lpSrcFile ),
strSrcPathName += _T("\\");
strSrcPathName += FindFileData.cFileName;

::DeleteFile( strSrcPathName );
}
else//目录
{
//DeleteFile(,)
//RemoveDirectory 可能你要
//调用DeleteFile
}
}

::FindClose( hFindFile );

if( ERROR_NO_MORE_FILES != GetLastError() )
return FALSE;
}
}
sundayboys 2001-10-08
  • 打赏
  • 举报
回复
看以前的帖子,或者msdn阿。
wmouse 2001-10-08
  • 打赏
  • 举报
回复
look
pursuer_zhao 2001-10-08
  • 打赏
  • 举报
回复
SHFileOperation函数
怎么用呀?
panda_w 2001-10-08
  • 打赏
  • 举报
回复
竟然忘记了SHFileOperation函数
panda_w 2001-10-08
  • 打赏
  • 举报
回复
可以FindFile和FindNextFile,一个个删除
方法笨了一些
ccnuxjg 2001-10-08
  • 打赏
  • 举报
回复
用这个函数就可以搞定了。算法采用低归
给分吧,兄弟。

BOOL CCutfoldDlg::DelDirectory(CString 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);
DelDirectory(tempDir);
}
else
{
char tempFileName[200];
sprintf(tempFileName,"%s\\%s",DirName,foundFileName);
DeleteFile(tempFileName);
}
}
}
tempFind.Close();
if(!RemoveDirectory(DirName))
{
::MessageBox(0,"删除目录失败!","警告信息",MB_OK);
return FALSE;
}
return TRUE;
}
kane_yj 2001-10-08
  • 打赏
  • 举报
回复
int remove( const char *path );
int _rmdir( const char *dirname );
sundayboys 2001-10-08
  • 打赏
  • 举报
回复
SHFileOperation,用这个api阿,
源码下载地址: https://pan.quark.cn/s/c20c5da6957d 卸载 首先,需要核实是否存在先前安装的记录,或者系统是否预置了httpd服务,可通过以下命令进行验证: # rpm -qa | grep httpd 或者: # yum list | grep httpd 我之前已经进行过一次安装,因此在此会看到相应的显示结果: 然后我将着手卸载我的httpd,首要步骤是终止httpd服务的运行,对应的命令如下: # systemctl stop httpd.service 接着,无论是使用 rpm -e 还是 yum -erase 命令均可实现卸载,但需注意使用rpm -e命令前必须自行移除相关依赖包,因此我选择使用yum -erase命令进行卸载,具体命令为: # yum erase httpd.x86_64 在执行过程中会提示确认操作 在Linux环境中,CentOS 7 是一种非常普遍的操作系统,特别是在服务器应用方面。Apache HTTP Server(通常简称为Apache或httpd)是最广受欢迎的网页服务器软件之一,主要用于承载网站及相关服务。本资源将详尽说明在CentOS 7系统中关于Apache服务的安装与移除流程。 ### 移除Apache服务 1. **核实安装情况**: 在执行卸载操作前,必须先确认Apache是否已安装。这可以通过查询已安装的软件包列表来完成,可选用以下任一命令: ```bash # rpm -qa | grep httpd # yum list | grep httpd ``` 若Apache已安装,上述命令将返回相关的软件包信息。 2. **终止服务运行**: 在卸载前,必须先停止正在运行的A...
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 在信息技术行业,特别是在操作系统部署及维护方面,统一可扩展固件接口(UEFI)与Linux系统如Debian的相互配合是一个关键议题。本篇将深入分析"在Debian 9.13系统中通过UEFI启动的UEFI Shell"这一焦点,并阐述如何处理安装期间遭遇的启动障碍。 UEFI作为替代传统BIOS的新型固件架构,它带来了更为先进、更为安全的启动机制,同时支持更大容量的存储设备以及更迅捷的启动时间。在部署Debian 9.13(Stretch版本)时,用户可以选择运用UEFI模式进行安装,从而获取上述种种好处。然而,UEFI启动过程需要特定的引导管理器,一般而言是GRUB2的UEFI版本,即称作grubx64.efi。 描述中所述情形可能是由于安装阶段GRUB2引导管理器的UEFI版本未能被恰当地生成或设置,因而系统无法经由UEFI模式启动。在此情形下,"uefishell"工具便显得尤为重要。UEFI Shell是一个命令行界面,它允许用户在UEFI环境中执行多样任务,包括手动引导操作系统。它提供了一个临时的补救措施,使用户得以纠正引导故障。 为了借助UEFI Shell来纠正启动故障,必须遵循以下步骤: 1. **获取UEFI Shell**:通常,UEFI Shell作为现代计算机UEFI固件的一部分预先安装,但在某些情况下,可能需要从设备制造商的官方网站上获取最新版本。 2. **插入搭载UEFI Shell的USB存储设备**:将下载的UEFI Shell文件拷贝至一个采用FAT32格式化的USB存储设备上,并将其接入计算机。 3. **进入UEFI配置界面**:重新...

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧