【转】VC MFC 如何删除文件,目录,文件夹
原文网址: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 如何删除文件,目录,文件夹的更多相关文章
- VC 复制移动删除重命名文件文件
说明: 1.以下封装了4个函数_CopyFile,_DeleteFile,_MoveFile,_ReNameFile 2.每个函数都先拷贝了原来的路径,保证了路径是以2个\0\0结尾.(如果不以2个\ ...
- C#FTP操作类含下载上传删除获取目录文件及子目录列表等等
ftp登陆格式 : ftp://[帐号]:[密码]@[IP]:[端口] ftp://用户名:密码@FTP服务器IP或域名:FTP命令端口/路径/文件名 直接上代码吧,根据需要选择函数,可根据业务自己 ...
- VC/MFC 下 递归遍历目录下的所有子目录及文件
在MFC下要实现文件夹的递归遍历,可用CFileFind类,依次读取文件夹下的子文件夹和文件,并判断通过判断是文件夹还是文件来决定递归遍历.递归遍历代码如下: /******************* ...
- [No000073]C#直接删除指定目录下的所有文件及文件夹(保留目录)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- php删除指定目录所有文件
<?php /** * 删除指定文件目录下的所有文件 * @param str $dir 指定文件路径: 如:K:/wamp/www/test * return boole *--------- ...
- java 20 -3 递归之删除特定目录下的特定文件
/* 需求:删除H:\demo目录下的带内容的文件 分析: A:封装该目录 B:获取该目录下所有的文件或文件夹的File数组 C:遍历该File数组,获取每一个File对象 D:判断所遍历的FIle对 ...
- Linux--/tmp目录文件重启后自动删除
源博客 http://blog.itpub.net/24996904/viewspace-769327/ 在/etc/default/目录下有个rcS文件,文件内容如下:## /etc/default ...
- Java版本的删除指定目录及子目录下名叫“xxx.txt”的所有文件
以前写过一个python版本的,但是在查找文件路径的时候出现错误,无法正确的获取到文件的路径,就造成无法删除该路径下的“xxx.txt”文件. 当时以为是windows版本系统的错误造成这个问题的,也 ...
- 删除一个目录和其各级子目录下的.svn文件
两种方法[1]用find命令和其action来实现[2]用rm直接实现$ cd /tmp/xxx$ rm -rf `find . -name .svn`就可以实现了. 删除SVN目录及从服务器端删除 ...
随机推荐
- [cocos2d-x 2.0.4][iOS7]图片加载错误
本篇文章由:http://www.sollyu.com/cocos2d-x-2-0-4-ios7-image-loading-errors/ 说明 错误提示 <Error>: CGBitm ...
- [java学习笔记]java语言基础概述之标识符&关键字&注释&常量和变量
一.标识符 在程序中自定义的一些名称 由26个英文字母的大小写,数字,_$组成 定义合法标识符的规则: 不能以数字开头 不能使用关键字 java严格区分大小写 注意:在起名字时,为了提高阅读性,必须得 ...
- entity framework mysql 那些写法你碰不得
记 几次 ef 数据查询踩到的坑......未完待续
- 【转】C#中没有id 没有name C#怎么点击按钮
HTML按钮元素 <input type="submit" value="确定" class="dialogbtn" C# 执行代码 ...
- php中的require() 语句的使用方法
php中的require() 语句的使用方法 require()语句包括并运行指定文件. require()语句包括并运行指定文件.有关包括如何工作的详细信息见 include() 的文档. requ ...
- 原生js在IE7下 向dom添加节点的一个bug, (本例为添加hidden input)
需求是要用js向dom结构增加1个hidden用来存放要post到服务器的数据 var aspnetForm = document.getElementById("aspnetForm&qu ...
- ASP.NET Core 行军记 -----第一步(艰辛的 MVC Hello World)
现在ASP.NET Core还在不断成长.更新中,说不定到了明天又换了个模样,就如同一个小孩,从蹒跚学步,到奔向未来. 所以我们可以相应的去理解更新中所发生的变化,包容它.呵护它,而不是盲目的指责与批 ...
- Hbase实例
import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.had ...
- C# Windows Service调用IBM Lotus Notes发送邮件
近日研究了下IBM Lotus Mail,这货果然是麻烦,由于公司策略,没有开放smtp,很多系统邮件都没有办法发送,于是入手google学习Lotus Mail,想做成Windows服务,提供wcf ...
- <二> SQL 基础
left (outer) join 结果集包含连接表的匹配行,也包括左连接表的所有行. select a.a, a.b, a.c, b.c b.d b.f from a left out join b ...