删除整个目录文件

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");
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值