C 实现删除非空文件夹

C、 C++遍历文件夹,删除文件夹 1,使用SHFileOperation删除文件夹, 阅读详情
/*
文件名:   rd.c

----------------------------------------------------
    c中提供的对文件夹操作的函数,只能对空文件夹进行
删除,这使很多初学者在编码过程中产生许多困扰,我也
很不爽这件事情,所以编写这个对非空文件夹进行删除的
函数,仅供参考。

注意:本函数编写以VC6为依据,其中关于文件夹的操作函数
      与标准c有所区别。如VC6中的findclose可能需要用c
	  中的closedir()来代替。
----------------------------------------------------
日期         程序员                       变更记录

2010.4.28    海总(掌门人号)           创建文件,编写函数


----------------------------------------------------
*/




#include <stdio.h>
#include <io.h>
#include <string.h>
#include <direct.h>

/*
函数入口:文件夹的绝对路径
          const char*  dirPath

函数功能:删除该文件夹,包括其中所有的文件和文件夹

返回值:  0  删除 
         -1  路径不对,或其它情况,没有执行删除操作
*/
int  removeDir(const char*  dirPath)
{

	struct _finddata_t fb;   //查找相同属性文件的存储结构体
	char  path[250];          
	long    handle;
	int  resultone;
	int   noFile;            //对系统隐藏文件的处理标记
	
	noFile = 0;
	handle = 0;

	
	//制作路径
	strcpy(path,dirPath);
    strcat (path,"/*");

	handle = _findfirst(path,&fb);
	//找到第一个匹配的文件
	if (handle != 0)
	{
		//当可以继续找到匹配的文件,继续执行
		while (0 == _findnext(handle,&fb))
		{
			//windows下,常有个系统文件,名为“..”,对它不做处理
			noFile = strcmp(fb.name,"..");
			
			if (0 != noFile)
			{
				//制作完整路径
				memset(path,0,sizeof(path));
				strcpy(path,dirPath);
				strcat(path,"/");
				strcat (path,fb.name);
				//属性值为16,则说明是文件夹,迭代
				if (fb.attrib == 16)
				{
					 removeDir(path);	
				}
				//非文件夹的文件,直接删除。对文件属性值的情况没做详细调查,可能还有其他情况。
				else
				{
					remove(path);
				}
			}	
		}
		//关闭文件夹,只有关闭了才能删除。找这个函数找了很久,标准c中用的是closedir
		//经验介绍:一般产生Handle的函数执行后,都要进行关闭的动作。
		_findclose(handle);
	}
		//移除文件夹
		resultone = rmdir(dirPath);
		return  resultone;
}











如何快速删除Cisco交换机Flash中的非空文件夹或非空目录 最近对一台cisco 2960交换机升级了IOS,由于升级之前没有采用erase或format命令清空flash,升级完成后用dir命令查看flash发现以前老版本IOS目录还在,如下图所示。 熟悉cisco IOS命令的人都知道我们一般对flash进行操作常用的命令是dir, cd, delete, mkdir, rmdir, erase, format等。此时,如果采用rmdir命令直 接删除目录由于目录不为空是不能成功删除的。 switch#rmdir flash:   Remove director 阅读详情

相关推荐

C语言实现文件夹的创建和删除

本文将介绍如何使用C语言编写程序来创建和删除文件夹,并提供相应的源代码和描述。函数用于创建文件夹,它的第一个参数是文件夹的名称,第二个参数是权限模式。运行上述程序后,如果文件夹创建成功,将会打印出"文件夹创建成功!运行上述程序后,如果文件夹删除成功,将会打印出"文件夹删除成功!否则,将会打印出"文件夹删除失败。如果要删除非空文件夹,需要借助其他方法,例如递归地删除文件夹内的所有文件和子文件夹。要创建一个文件夹,我们需要使用C语言中的系统调用函数。函数用于删除文件夹,它的参数是要删除的文件夹名称。

DevPulse的博客 1349

c语言删除非空文件夹

rmdir rmdir() 删除空的文件夹 unlink unlink(); man page 的解释: unlink() deletes a name from the filesystem. If that name was the last link to a file and no processes have the file open, the file is deleted and the space it was using is made available for r

longjiang321的博客 3061

支付逻辑漏洞的八大姿势(上篇)

学习支付漏洞,看这篇文章!!!文章来源:SecHub网络安全社区(本资料仅供学习参考,严禁使用者进行未授权渗透测试!严禁任何形式的转载!

qq_39493066的博客 1358

windows下c语言删除文件夹

可以使用remove函数来删除文件夹,但是需要先递归删除文件夹内的所有文件和子文件夹。这个程序可以递归删除指定路径下的所有文件和子文件夹,最后删除指定路径的文件夹。

qq_42815643的博客 2000

【Python实战解析】从数据爬取到房价预测:一个完整的数据科学项目流程拆解

本文详细拆解了一个完整的Python数据科学项目流程,从爬取长沙二手房数据到房价预测模型构建。通过实战案例,介绍了数据爬取、清洗、可视化及模型优化的关键技巧,帮助开发者掌握Python在数据分析中的应用,提升程序开发能力。

weixin_30379531的博客 411

ROS 2 Slam Toolbox实战:从零跑通2D激光建图

SLAM(同步定位与地图构建)是移动机器人实现自主导航的基础技术,其核心在于通过传感器数据实时估计位姿并构建环境栅格地图。slam_toolbox作为ROS 2 Humble及后续LTS版本官方主推的2D SLAM后端,采用图优化+闭环检测架构,兼顾实时性、鲁棒性与工程可维护性。相比cartographer和hector_slam,它原生支持ROS 2、参数精简、诊断友好,特别适合硬件资源有限、缺乏IMU或深度相机的差速机器人平台。本文聚焦真实部署场景,覆盖RPLIDAR等常见2D激光雷达与TurtleBo

weixin_30596165的博客 358

c语言如何创建和删除文件夹总结

需要io.h和dirct.h 关于相对路径的使用 使用.或者.\\来表示当前路径。这个可以省略 使用..\\来表示来到上一级路径 (一) io.h用来判断文件夹是否存在, int access(const char* _Filename, int _AccessMode) finame 为文件夹地址 Accsemode用来指定判断的访问权限 在库中有宏定义 #define R_OK 4 //只判断是否有读权限 #define W_OK 2 //只判断是否有写权限 #define X_OK 1 //...

HRtttttt6的博客 1772

攻防世界 Crypto 新手练习区 1-12 全详解

本篇是攻防世界 Crypto 新手练习区的全解

闵行小鱼塘 3734

C/C++删除目录文件夹下所有文件(递归)

C/C++递归删除目录文件夹下所有文件 rmdir remove

凡人只做一事 4475

避坑指南:STM32定时器测PWM频率占空比时,那些CubeMX没告诉你的细节(蓝桥杯真题衍生)

本文深入解析STM32定时器测量PWM频率和占空比时的关键细节,揭示CubeMX配置中未明确的时钟树原理和输入捕获机制。针对蓝桥杯嵌入式赛题中的常见问题,提供动态调整预分频器、多采样数字滤波等实战解决方案,帮助开发者避免测量误差,提升PWM测量精度和稳定性。

weixin_28692153的博客 339

Vivado IP核与约束文件管理指南:解决OOC警告、COE文件丢失与Block Design复用

本文详细介绍了Vivado IP核与约束文件管理的系统化方法,包括解决OOC警告、COE文件丢失与Block Design复用等常见问题。通过IP核锁定机制、分层约束架构和动态约束技术,提升FPGA工程的健壮性和团队协作效率,特别适合中大型项目开发。

weixin_30887919的博客 430

java 非空删除文件夹,自个儿用代码实现非空目录的删除(java及C语言)

自己用代码实现非空目录的删除(java及C语言)今天没什么事,就随便写了写代码,用代码实现删除非空目录。在java或c语言中,是没有直接的函数能够调用而且实现非空目录的删除。以下是我的代码实现 ,经过测试!Java代码import java.io.File ;import java.io.IOException ;public class DeleteDir{public static void ...

weixin_31304817的博客 557

Python爬虫实战:如何抓取POI信息(公共场所)位置信息

获取公共场所的信息:如餐厅、商店、医院、景点等。抓取POI的基本信息:如名称、类别、地址、评分等。获取POI的地理坐标:经度和纬度信息。存储POI数据:将抓取到的POI信息存储到本地数据库中。通过本篇文章,我们详细介绍了如何使用Python爬虫抓取POI信息。通过Google Maps API和OpenStreetMap(Overpass API),我们展示了如何获取餐厅、商店、医院等公共场所的位置信息,并进一步探讨了如何处理分页、存储数据以及反爬虫策略。

2201_76125261的博客 379

删除非空文件夹

/* 文件名: rd.c ---------------------------------------------------- c中提供的对文件夹操作的函数,只能对空文件夹进行 删除,这使很多初学者在编码过程中产生许多困扰,我也 很不爽这件事情,所以编写这个对非空文件夹进行删除的 函数,仅供参考。 注意:本函数编写以VC6为依据,其中关于文件夹的操作函数 ...

huangli19870217的专栏 615

「UG/NX」BlockUI 控件集合目录大纲

Block UI Styler 模块设计对话框是官方推荐使用的对话框制作方法,它能够与NX自身风格相统一,在实际开发中经常使用。文字内容包含:NX所有控件介绍的链接、内部控件调用的基础介绍、官方案例查看路径、控件的特殊用法篇链接、番外篇链接。

何曾参静谧的博客 2676

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Linux 使用C语言删除一个非空的目录

Linux 使用C语言删除一个非空的目录原理以及代码示例

小立仔 1331

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

linux下删除非空目录命令

例如删除当前目录下的非空目录 demo ,命令 rmdir demo 无法删除非空的目录. 应该使用命令 rm -rf 目录名 即如下命令: rm -rf demo   其中参数-f 表示force .使用了这个参数就不会提示你是否要删除了.   rmdir只能删除空目录...

静水流深 1836

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

删除 C 盘空文件夹--递归删除

PowerShell.exe -File "文件(夹):删除空文件夹.ps1" "C:\"# 检查目录属性,排除具有系统、只读和重分析点属性的目录。# 删除所有子文件(夹)后,可判断父目录为空,进而再删除父目录。# 检查目录是否为空(排除 desktop.ini)REM 检查是否包含 desktop.ini 文件。REM 如果目录为空且不包含特定属性或文件,则删除。# 获取所有目录,把子目录排列在父目录前面。REM 检查目录是否为空。REM 检查目录属性。REM 遍历所有目录。

tiandyoin的专栏 967

java删除非空文件夹

java删除文件夹。

feinifi的博客 3361

电脑如何删除空文件夹?Windows批量删除空白文件夹解决方法

电脑如何删除空文件夹?通过新建文本借助代码工具、使用Windows优化工具、借助批量删除工具、手动删除、改名删除空文件夹和查找文件夹大小等6种方法帮助我们更快批量删除电脑空白文件夹,达到优化电脑磁盘空间,提高运行速度,降低查找文件时间的目的。

2403_87905440的博客 1万+

如何删除/删除Python不为空的文件夹?

当我尝试删除非空文件夹时,我收到“访问被拒绝”错误。 我在尝试中使用了以下命令: os.remove("/folder_name") 。 删除/删除非空文件夹/目录的最有效方法是什么?

asdfgh0077的博客 4708

python 删除非空文件夹_如何使用python移除/删除非空文件夹?

移除/删除非空文件夹/目录的最有效方法是什么?1.标准库参考:shutil.rmtree。根据设计,rmtree在包含只读文件的文件夹树上失败。如果要删除文件夹,不管它是否包含只读文件,请使用import shutilshutil.rmtree('/folder_name', ignore_errors=True)2.从os.walk()上的python文档中:# Delete everythin...

weixin_39624774的博客 810

MFC 中 删除一个非空文件夹 (MFC 文件操作 一)

最近在看MFC 的文件操作,从网上淘了一本比较讲MFC文件操作比较全的电子书,然后开始试手。在删除文件夹时,遇到了问题,通过查看MSDN和网友的论坛留言,自己总算是解决了这个问题,现在与大家共享。 MFC中提供了删除文件夹的一个封装函数 RemoveDirectory(LPCTSTR lpPathName),我们只要把要删除的文件夹的路径传进去就可以删除了...

dianyin8310的博客 320
上一篇: 万能批处理工具包最终版
下一篇: C++ 删除文件(夹) 宽字符版 && 设置console程序图标
lniwn
博客等级 码龄16年 33粉丝 59原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值