FAQ2004:删除非空目录下所有文件

原创 2004年12月29日 16:25:00
【问题】怎样删除一个非空目录,及其目录里面所有内容:
【解答1】如果不进行递归删除。你可以使用API函数SHFileOperation,它可以一次删除目录及其下面的子目录和文件。
    示例代码:
    BOOL DelTree(LPCTSTR lpszPath)
{
  SHFILEOPSTRUCT FileOp;
  FileOp.fFlags = FOF_NOCONFIRMATION;
  FileOp.hNameMappings = NULL;
  FileOp.hwnd = NULL;
  FileOp.lpszProgressTitle = NULL;
  FileOp.pFrom = lpszPath;
  FileOp.pTo = NULL;
  FileOp.wFunc = FO_DELETE;
  return SHFileOperation(&FileOp) == 0;
}

【解答2】使用递归调用,逐个删除:
  示例代码:

  BOOL DeleteDirectory(char *DirName)//如删除 DeleteDirectory("c://aaa") 
{
 CFileFind tempFind;
 char tempFileFind[MAX_PATH];
 sprintf(tempFileFind,"%s//*.*",DirName);
 BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileFind);
 while(IsFinded)
 {
  IsFinded=(BOOL)tempFind.FindNextFile();
  if(!tempFind.IsDots())
  {
   char foundFileName[MAX_PATH];
   strcpy(foundFileName,tempFind.GetFileName().GetBuffer(MAX_PATH));
   if(tempFind.IsDirectory())
   {
    char tempDir[MAX_PATH];
    sprintf(tempDir,"%s//%s",DirName,foundFileName);
    DeleteDirectory(tempDir);
   }
   else
   {
    char tempFileName[MAX_PATH];
    sprintf(tempFileName,"%s//%s",DirName,foundFileName);
    DeleteFile(tempFileName);
   }
  }
 }
 tempFind.Close();
 if(!RemoveDirectory(DirName))
 {
  MessageBox(0,"删除目录失败!","警告信息",MB_OK);//比如没有找到文件夹,删除失败,可把此句删除
  return FALSE;
 }
 return TRUE;
}

[Perl系列—] 1. 清空目录及目录中的所有文件

看起来很简单, 但是需要注意的是: 1. 如果目录下有文件的话,rmdir 就不能删除目录, 这个看起来很正常。 2. 如果子目录下只有子目录的话, rmdir 也不能删除此目录。 3. u...
  • oscar999
  • oscar999
  • 2014年06月13日 09:00
  • 3565

Python遍历文件夹,删除空文件夹,过滤特定大小和格式的文件

target: 遍历文件夹递归删除空文件夹删除特定大小的文件删除特定格式的文件按照特定条件删除文件 detail target: 遍历文件夹递归删除空文件夹删除非图片文件,限定几种图片格式删除...
  • aitcax
  • aitcax
  • 2015年06月14日 11:13
  • 3557

C语言实现Linux下删除非空目录

Linux C语言 删除非空目录
  • zhaoxd200808501
  • zhaoxd200808501
  • 2017年07月12日 11:45
  • 1819

VC删除非空目录及所有文件的代码

//删除文件夹目录(非空) bool DeleteDirectory(char* sDirName)  ...{      CFileFind tempFind;      char sT...
  • ccx_john
  • ccx_john
  • 2013年11月13日 11:59
  • 791

Dos下删除(非)空目录或文件

【删除非空文件夹】: 在xp中的虚拟dos也就是开始运行cmd啦,是可以输入中文的,要删除非空文件夹请用rmdir /s /q命令 删除非空目录:RMDIR [/S] [/Q] [drive:]...
  • JoeBlackzqq
  • JoeBlackzqq
  • 2011年12月15日 22:21
  • 5348

删除空目录批处理文件

  • 2013年06月05日 15:02
  • 511B
  • 下载

java 删除文件(删除空目录)

package com.sdty.main; import java.io.File; import java.io.FileInputStream; import java.io.FileOut...
  • hyb1234hi
  • hyb1234hi
  • 2015年07月16日 11:15
  • 338

MFC删除非空目录

  • 2012年09月18日 19:05
  • 2KB
  • 下载

自己用代码实现非空目录的删除(java及C语言)

今天没什么事,就随便写了写代码,用代码实现删除非空目录。在java或c语言中,是没有直接的函数能够调用而且实现非空目录的删除。以下是我的代码实现 ,经过测试! Java代码 impor...
  • chenjun5845209
  • chenjun5845209
  • 2013年03月17日 19:01
  • 1159

php rmdir使用递归函数删除非空目录

我们大家都知道,php rmdir()函数用于删除空目录,但如果要删除非空目录,我们必须将非空目录中的文件或子目录删除,本文章向大家介绍php如何使用递归函数删除非空目录,需要的朋友可以参考一下。 ...
  • github_34457546
  • github_34457546
  • 2017年11月16日 16:18
  • 63
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:FAQ2004:删除非空目录下所有文件
举报原因:
原因补充:

(最多只允许输入30个字)