原文网址:http://shijuanfeng.blogbus.com/logs/100675115.html

第一种方法:定义一个文件类对象来操作
CFile   TempFile;   
  TempFile.Remove(指定文件名); 
第二种方法:  使用系统函数 DeleteFile( LPCSTR filename )删除文件    _rmdir(),删除目录 DeleteDirectory(sTempDir);  删除目录 RemoveDirectory(sTempDir);删除目录
eg:  DeleteFile(   char   *tempFileName);

令注:若要清空文件,但保留目录用: system(“del  C:\temp”); // 清空了C:\temp中的所有文件,但是不会清楚文件夹下的子目录,而且会弹出:是否删除的Doc框

//删除文件夹目录(非空) 上面提到的删除目录的方法只能删除空目录(即文件夹),如果目录下有文件或者子目录,就不能删除了,VC里好像没有直接的函数,只能手动写个函数来删除了,下面提供一个删除非空目录的方法:

bool DeleteDirectory(char* sDirName)
{

CFileFind tempFind;
  char sTempFileFind[200];
  strcpy(sTempFileFind, sDirName);
  strcat(sTempFileFind, “\\*.*”);
 
  BOOL IsFinded = tempFind.FindFile(sTempFileFind);
  while (IsFinded)
  {
   IsFinded = tempFind.FindNextFile();  
  
   char sFoundFileName[200];
   strcpy(sFoundFileName,tempFind.GetFilePath()); 
   DeleteFile(sFoundFileName);   
 }
  tempFind.Close();

}

清空整个文件夹的内容(包括子文件夹),但保留该文件夹

void CRelCtrlDlg::DeleteDirectory(char* sDirName)
{
 char sPath[200];
 strcpy(sPath, sDirName);

CFileFind   ff;
 BOOL   bFound;
 char sTempFileFind[200];
 strcpy(sTempFileFind, sPath);
 strcat(sTempFileFind, “\\*.*”);

bFound   =   ff.FindFile(sTempFileFind);

while(bFound)
 {
  bFound   =   ff.FindNextFile();
  CString  sFilePath   =   ff.GetFilePath();

if(ff.IsDirectory())
  {
   if(!ff.IsDots())
    DeleteDirectory((LPSTR)(LPCTSTR)sFilePath);
  }
  else
  {
   if(ff.IsReadOnly())
   {
    SetFileAttributes(sFilePath,   FILE_ATTRIBUTE_NORMAL);
   }
   DeleteFile(sFilePath);
  }
 }
 ff.Close();
 SetFileAttributes(sPath,   FILE_ATTRIBUTE_NORMAL);
 if (!strcmp(sPath,sDirName))
 {
  return;
 }
 RemoveDirectory(sPath);
}

【转】VC MFC 如何删除文件,目录,文件夹的更多相关文章

  1. VC 复制移动删除重命名文件文件

    说明: 1.以下封装了4个函数_CopyFile,_DeleteFile,_MoveFile,_ReNameFile 2.每个函数都先拷贝了原来的路径,保证了路径是以2个\0\0结尾.(如果不以2个\ ...

  2. C#FTP操作类含下载上传删除获取目录文件及子目录列表等等

    ftp登陆格式  : ftp://[帐号]:[密码]@[IP]:[端口] ftp://用户名:密码@FTP服务器IP或域名:FTP命令端口/路径/文件名 直接上代码吧,根据需要选择函数,可根据业务自己 ...

  3. VC/MFC 下 递归遍历目录下的所有子目录及文件

    在MFC下要实现文件夹的递归遍历,可用CFileFind类,依次读取文件夹下的子文件夹和文件,并判断通过判断是文件夹还是文件来决定递归遍历.递归遍历代码如下: /******************* ...

  4. [No000073]C#直接删除指定目录下的所有文件及文件夹(保留目录)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  5. php删除指定目录所有文件

    <?php /** * 删除指定文件目录下的所有文件 * @param str $dir 指定文件路径: 如:K:/wamp/www/test * return boole *--------- ...

  6. java 20 -3 递归之删除特定目录下的特定文件

    /* 需求:删除H:\demo目录下的带内容的文件 分析: A:封装该目录 B:获取该目录下所有的文件或文件夹的File数组 C:遍历该File数组,获取每一个File对象 D:判断所遍历的FIle对 ...

  7. Linux--/tmp目录文件重启后自动删除

    源博客 http://blog.itpub.net/24996904/viewspace-769327/ 在/etc/default/目录下有个rcS文件,文件内容如下:## /etc/default ...

  8. Java版本的删除指定目录及子目录下名叫“xxx.txt”的所有文件

    以前写过一个python版本的,但是在查找文件路径的时候出现错误,无法正确的获取到文件的路径,就造成无法删除该路径下的“xxx.txt”文件. 当时以为是windows版本系统的错误造成这个问题的,也 ...

  9. 删除一个目录和其各级子目录下的.svn文件

    两种方法[1]用find命令和其action来实现[2]用rm直接实现$ cd /tmp/xxx$ rm -rf  `find . -name .svn`就可以实现了. 删除SVN目录及从服务器端删除 ...

随机推荐

  1. [cocos2d-x 2.0.4][iOS7]图片加载错误

    本篇文章由:http://www.sollyu.com/cocos2d-x-2-0-4-ios7-image-loading-errors/ 说明 错误提示 <Error>: CGBitm ...

  2. [java学习笔记]java语言基础概述之标识符&关键字&注释&常量和变量

    一.标识符 在程序中自定义的一些名称 由26个英文字母的大小写,数字,_$组成 定义合法标识符的规则: 不能以数字开头 不能使用关键字 java严格区分大小写 注意:在起名字时,为了提高阅读性,必须得 ...

  3. entity framework mysql 那些写法你碰不得

    记 几次 ef 数据查询踩到的坑......未完待续

  4. 【转】C#中没有id 没有name C#怎么点击按钮

    HTML按钮元素 <input type="submit" value="确定" class="dialogbtn" C# 执行代码 ...

  5. php中的require() 语句的使用方法

    php中的require() 语句的使用方法 require()语句包括并运行指定文件. require()语句包括并运行指定文件.有关包括如何工作的详细信息见 include() 的文档. requ ...

  6. 原生js在IE7下 向dom添加节点的一个bug, (本例为添加hidden input)

    需求是要用js向dom结构增加1个hidden用来存放要post到服务器的数据 var aspnetForm = document.getElementById("aspnetForm&qu ...

  7. ASP.NET Core 行军记 -----第一步(艰辛的 MVC Hello World)

    现在ASP.NET Core还在不断成长.更新中,说不定到了明天又换了个模样,就如同一个小孩,从蹒跚学步,到奔向未来. 所以我们可以相应的去理解更新中所发生的变化,包容它.呵护它,而不是盲目的指责与批 ...

  8. Hbase实例

    import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.had ...

  9. C# Windows Service调用IBM Lotus Notes发送邮件

    近日研究了下IBM Lotus Mail,这货果然是麻烦,由于公司策略,没有开放smtp,很多系统邮件都没有办法发送,于是入手google学习Lotus Mail,想做成Windows服务,提供wcf ...

  10. <二> SQL 基础

    left (outer) join 结果集包含连接表的匹配行,也包括左连接表的所有行. select a.a, a.b, a.c, b.c b.d b.f from a left out join b ...