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

content-pipeline:一条可落地的内容生产流水线

content-pipeline 是一种将内容创作工程化的系统性方法,其核心在于用确定性流程替代碎片化人工操作。它基于结构化提示(prompt)、预置叙事框架与品牌参数固化三大原理,实现从素材输入到多平台发布的端到端自动化。技术价值体现在显著降低认知负荷、保障输出一致性、支持本地化资源绑定与闭环反馈校验。典型应用场景包括技术教程批量生成、跨平台(公众号/小红书/即刻)内容适配、AI写作质量可控迭代等。本文深入解析其作为‘内容制造业’基础设施的底层设计逻辑与实操路径,尤其聚焦Claude Code环境下的真实

weixin_31199559的博客 269

windows下c语言删除文件夹

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

qq_42815643的博客 2000

java三角套利_三角对冲套利-EA原理全解析

它是两个直盘货币和一个交叉盘货币之间的相互对冲,交易员往往受到外界因素的影响无法严格执行造成亏损。该系统经过大量数据统计分析和严格的科学论证计算,并通过多年实盘交易验证可以达到稳定盈利。希望交易员严格按照交易规则执行。此策略利用交叉外汇对的市场价格与其合成价格的价差来实现套利,还以EUR/USD和GBP为例:1,我们关注三个外汇对:EUR/USD,GBP/USD,以及GBP/EUR2,计算GBP/...

weixin_29531897的博客 2418

Cursor集成Claude 4.6免费版:本地IDE合规调用指南

大语言模型编程助手(LLM Copilot)已成为现代开发标配,其核心能力依赖于上下文理解、代码推理与结构化输出等关键技术原理。Anthropic官方提供的Claude系列模型,尤其Claude 4.6,凭借200K超长上下文、tool use函数调用和严格可控的API设计,在工程实践中展现出显著技术价值。该能力可无缝嵌入本地IDE环境,支撑代码解释、跨文件分析、单元测试生成等高频开发场景。本文聚焦Cursor这一开源可审计IDE,详解如何合规复用Anthropic免费tier接口(/v1/messages

weixin_34095889的博客 537

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

MT4-EA自动化交易研究笔记(2022-04-22)

自从接触到mt4的EA自动化交易,更让我这个10多年的老程序员看到了曙光,目前来看也确实出了一点成果,只是是否能稳定盈利有待时间的考验,所以开此专栏,一来做做记录与分析,更好的优化我的EA,二来也希望能与更多的高手交流,以完善我的交易系统

t35254056的博客 2291

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

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

凡人只做一事 4475

AD9371实战:如何用ZCU106搭建JESD204B TX时钟链(含关键参数计算)

本文详细解析了如何基于Xilinx ZCU106开发板为AD9371搭建JESD204B TX时钟链。文章从系统需求出发,逐步推导出从IQ采样率到GTH线速率的关键参数计算公式,并提供了在Vivado中配置GTH收发器(包括QPLL选择、分频比设置)的实战步骤与调试技巧,旨在帮助硬件工程师快速实现稳定可靠的JESD204B高速数据传输链路。

weixin_29164843的博客 293

JasperReport制作行内容合并的表格

效果图: 实现思路一: 交叉表 另一个思路: 普通表格 缺点:无法实现内容 垂直居中显示 准备工作 一、数据准备 DROP TABLE IF EXISTS `address_item_sex_value`; CREATE TABLE `address_item_sex_value` ( `id` int(11) NOT NULL AUTO_INCREM...

weixin_34148456的博客 2468

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

CDD数据库文件制作(十一)——服务配置(0x19_DTC Code)

虽然选择Copy和Reference都可以加载DTC,但是如果我们在DTC库中有修改DTC,通过Copy的方式加载的DTC在DTC Table中不会跟着DTC库的修改而自动更新。通过Reference的方式加载的DTC可以自动更新。找到Fault Memory的DTC Table,鼠标放在DTC Table区域,右键点击选择Copy …根据需要(客户协议)勾选响应的19服务子功能。如何创建一个新的DTC code?按照字母与下方要素可做一一对应。首先在DTC库中新建DTC。支持10 01/10 03。

LOVE135149的博客 1917

删除非空文件夹

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

huangli19870217的专栏 615

从零开始跑通3DGS教程:(四)修改(缩放、空间变换)colmap生成的sfm结果

通过colmap进行的sfm的普通方式会丢失场景的物理尺度信息,并且并不在符合一般认知的坐标系下,本文将读取colmap生成的点云和相机pose,将其进行空间变换和缩放之后,重新保存,新保存的结果仍然可以被colmap读取以及进行后续的稠密重建以及3dgs等工作

诺有缸的高飞鸟的博客 1424

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

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

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

小立仔 1331

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

linux下删除非空目录命令

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

静水流深 1836

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

删除 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、付费专栏及课程。

余额充值