删除整个目录文件

原创 2012年03月28日 17:24:07
bool deldir(char* dir_fullpath)	 //删除指定的目录
{ 
	char dir[260];
	char filename[260];
	int len = 0;
	int	ch = '\\';
	strcpy(dir, dir_fullpath);
	len = strlen(dir);
	char *temp = strrchr(dir,ch);
	if(len < 4 || temp == NULL)	 //可能为磁盘根目录或者不是有效的目录路径
	return false;
	
	if(temp != NULL)
	{ 
		if((temp - dir + 1) != len)	 //在目录后添加 '\'
		strcat(dir,"\\");
	}
	GetCurrentDirectory(260,filename);
	strcat(filename,"\\");
	if(strcmp(dir,filename)==0)	//如果要删除的目录是当前目录
	{ 
		strcat(filename,"..");
		SetCurrentDirectory(filename);	//改变当前目录
	}

	WIN32_FIND_DATA finddata;
	HANDLE fFile;
	bool flag;
	strcpy(filename,dir);
	strcat(filename,"*.*");
	fFile=FindFirstFile(filename,&finddata);
	flag=true;
	if(fFile!=INVALID_HANDLE_VALUE)	 //此目录不是空目录
	{
		BOOL bfind=true;
		while(bfind)
		{
			if(finddata.cFileName[0] != '.')
			{
				strcpy(filename,dir);
				strcat(filename,finddata.cFileName);
				if(finddata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
				{	//删除找到的子目录
					strcat(filename,"\\");
					flag = flag && deldir(filename);
				}
				else
				{	//删除找到的文件
					SetFileAttributes(filename,FILE_ATTRIBUTE_NORMAL);
					flag = flag && DeleteFile(filename);
				}
			}
		bfind = FindNextFile(fFile,&finddata);
		}
		FindClose(fFile);
	}
	if(flag)
	{
		SetFileAttributes(dir_fullpath,FILE_ATTRIBUTE_NORMAL);
		if(RemoveDirectory(dir_fullpath))
		return   true;
	}
	return   false;
}


调用:

	char *dir_fullpath="C:\\zip中文\\2";
	if(deldir(dir_fullpath))
	{
    	ShowMessage("OK");
	}

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/goodai007/article/details/7403782

删除整个目录及文件

void DeleteLog(LPCTSTR sDirName, bool bRemoveBase) { TCHAR sTempFileFind[MAX_PATH] ;      WIN32_F...
  • zhengfanqun
  • zhengfanqun
  • 2013-08-27 11:07:39
  • 336

Windows 文件夹操作:复制和删除整个文件夹

原文链接:http://www.cnblogs.com/xianyunhe/archive/2011/12/06/2278550.html 文件和文件夹的创建、复制、删除、重命名等操作是经常要用...
  • w18mc0431
  • w18mc0431
  • 2018-01-12 11:51:08
  • 159

android 删除某个目录及其子目录

/*要加载这两个类*/ import java.io.File; import android.text.TextUtils; 删除目录及其目录下的子目录和文件 public void del...
  • junzhang1122
  • junzhang1122
  • 2016-03-07 16:25:51
  • 1428

PHP删除整个文件夹和移动整个文件夹

  // ========== doDelDir函数 START ==========        function doDelDir($dir)        {            $dh=o...
  • subnet
  • subnet
  • 2006-11-15 00:12:00
  • 1215

DOS下删除整个目录及下属所有文件夹及文件最好用的命令

Windows XP以上的版本,在使用DOS命令模式下删除目录(目录就是档案总管中所谓的资料夹)不是用 deltree,而是用 rmdir 指令。 在Windows XP、2000、NT下都可用rmd...
  • kofterry
  • kofterry
  • 2010-01-12 21:38:00
  • 38987

递归删除目录下所有文件

删除目录下所有文件,这个只能用递归方法进行!! 递归,只有遇到出口才会停止递归,出口逻辑一定要认真!!! 目录下可能有文件或文件夹,文件夹下面还有文件或文件夹,所以使用递归进行便利进行删...
  • qq735598917
  • qq735598917
  • 2016-01-09 20:02:31
  • 586

linux上怎么快速删除一个目录

在linux中删除一个目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可解决。 直接rm就可以了,不过要加两个参数-rf 即:rm -rf ...
  • paullinjie
  • paullinjie
  • 2016-07-30 21:29:25
  • 6911

C++ 删除一个文件目录下的所有文件以及目录

//删除一个文件目录下的所有文件,并删除当前文件夹 chrDirName = _T("c:\\123"); BOOL CIVMSvrInfo::ReleaseDirectory(CString chr...
  • u012958937
  • u012958937
  • 2014-12-12 09:29:16
  • 534

Python删除目录下的文件以及文件夹

#!/usr/bin/env python import os import shutil filelist=[] rootdir="/home/zoer/aaa" filelist=os.list...
  • imzoer
  • imzoer
  • 2013-03-01 14:25:05
  • 21569

MFC 如何删除目录下的所有文件

最经开发的时候要用到文件系统的一些函数,其中一个就是如何删除一个目录下的所有文件.  下面试代码,BOOL bRemoveDir 代表是否移除根目录,也就是传进去的目录,如果传进去的目录是移动磁盘的根...
  • mydragonway
  • mydragonway
  • 2015-06-12 10:08:35
  • 373
收藏助手
不良信息举报
您举报文章:删除整个目录文件
举报原因:
原因补充:

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