原文网址: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. OpenJudge/Poj 1936 All in All

    1.链接地址: http://poj.org/problem?id=1936 http://bailian.openjudge.cn/practice/1936 2.题目: All in All Ti ...

  2. bootstrap和jQuery.Gantt的css冲突问题

    bootstrap是广泛使用的一个前端框架, 而jQuery.Gantt在目前也是一个很好用的用于绘制甘特图的插件.   这次在同时使用它们时,发现甘特图显示异常,如图   不加载bootstrap. ...

  3. A-Frame 简介03

    如果你想开始使用A-Frame可以通过以下几种方式: Play with CodePen Grab the Boilerplate Include the JS Build Install from ...

  4. Linux oracle数据库自动备份自动压缩脚本代码

    Linux oracle数据库备份完成后可以自动压缩脚本代码. 复制代码代码如下: #!/bin/bash #backup.sh #edit: www.jbxue.com ##系统名称 sysname ...

  5. VB6-表格控件MSHFlexGrid 实用代码

    在vb6中要显示数据虽然有datagrid.msflexgrid.mshflexgrid.vsflexgrid.True dbgrid7.0 可选,不过我在工作中用的最多的还是MSHFlexGrid, ...

  6. (转载)使用ADOConnet.BeginTrans后,出现错误提示:无法在此会话中启动更多的事务?

    Q: 三层结构,在服务器端使用adoconnection连接到sqlserver2000,然后想在 datasetprovider的beforupdaterecord中使用语句: try adocon ...

  7. 笨方法学python 33课

    今天Eiffel看到了第33章,任务是把一个while循环改成一个函数. 我在把while循环改成函数上很顺利,但是不知道怎么写python的主函数,在参数的调用上也出现了问题. 通过查资料,发现py ...

  8. Mac OSX 安装Python的paramiko模块经验总结

    一.简单介绍 最近需要用Python模拟登录远程服务器并自动执行一些代码,需要安装一个叫paramiko的模块. paramiko官方介绍遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接 ...

  9. 初探—KMP模式匹配算法

    KMP算法思想: 普通的字符串匹配算法S主串必须要回溯.但回溯就影响了效率. 改进的地方也就是这里,我们从P 串本身出发,事先就找准了T自身前后部分匹配的位置,那就可以改进算法. next数组的含义: ...

  10. 使用grub硬盘重装ubuntu

    电脑一直是双系统,Windows8 + Ubuntu13.04,昨天瞎搞,更新了一下QT,结果就不能开机了...真心难. 老系统坏了也好,正好可以装个Ubuntu14.04LTS.手边没有U盘,可以把 ...