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

Ansys疲劳仿真:工程结构寿命评估的实战方法论

做了这么多年仿真,有个感受越来越深——静力学算得再漂亮,疲劳寿命预测不对,项目照样过不了评审。不是因为理论有多复杂,而是因为疲劳损伤的物理机制本身就带有统计属性,材料内部的微观缺陷分布、应力集中位置、载荷谱的随机性,每一项都能让结果偏移20%甚至更多。本文从实战出发,梳理Ansys疲劳仿真的核心流程,重点讲清楚载荷类型选择、S-N曲线处理、应力集中修正这几个最容易出问题的环节。疲劳仿真做好了,最大的收获不是跑出一个漂亮的Damage云图,而是对结构的真实薄弱环节建立起量化的认知。

keyanxiaobaigou的博客 528

windows下c语言删除文件夹

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

qq_42815643的博客 2000

qt下使用grpc编程(2) —— 练手!自己改的一个简单小例子!1

(1)在研究了grpc官方提供的helloworld例程后,自己试着写了个小程序。 (2)编写proto文件。 proto文件用于定义服务和消息,用protobuf的语法编写,protobuf是一种通信协议,详细请百度。下面附上源码: syntax = "proto3"; option java_multiple_files = true; option java_pac

u011099079的博客 3925

支付宝支付(三):周期扣款实现注意细节

一、周期扣款实现说明 1、官方文档入口:https://opendocs.alipay.com/open/20190319114403226822/intro 2、根据官方文档说明,周期扣款有两种方式:先签约后代扣场景和支付后签约场景 3、周期扣款接入问题文档: a>https://opendocs.alipay.com/support/01rg24 b>https://opensupport.alipay.com/support/knowledge/50249/20160248753

新鲜雾霾的博客 5702

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

RDMA学习笔记-IB五层网络协议和报文结构

Reference InfiniBand Architecture Specification Volume 1, Release 1.3 文章目录IBA 网络协议分层1.链路层1.1 LRH1.2 ICRC1.3 VCRC2.网络层(GRH)3.传输层3.1 BTH3.2 extended transport header4. 报文结构4.1 send request4.2 RDMA Write request4.3 RDMA Read request4.4 ACK4.5 Atomic operatio

u014114310的博客 9469

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

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

凡人只做一事 4475

非root用户如何在CentOS7集群上编译安装OpenFOAM6

本文详细介绍了在CentOS7集群上以非root用户身份编译安装OpenFOAM6的完整流程。通过环境准备、依赖包离线获取、源码编译安装等步骤,解决了集群环境下权限和依赖问题,特别针对OpenMPI和Boost库提供了优化配置建议,帮助用户高效完成安装并优化性能。

weixin_28826961的博客 681

【AI编程】Trae 环境搭建与配置从使用到项目实战详解

Trae 环境搭建与配置从使用到项目实战详解

congge 5651

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

8、使用 TPCx - HCI 基准测试表征 HCI 集群的性能和弹性

本文详细介绍了 TPCx - HCI 基准测试,用于衡量超融合基础设施(HCI)集群的性能、稳定性和扩展性。TPCx - HCI 扩展了 TPCx - V 的理念,通过 Tile 架构和弹性特性,全面评估硬件、虚拟化、存储和网络组件的表现。文章还通过多个实验场景分析了负载均衡、数据布局和重新同步策略对性能的影响,并提出了部署和优化 HCI 集群的建议。

sun99的博客 179

删除非空文件夹

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

huangli19870217的专栏 615

详解AUTOSAR:专栏总述

本专栏系统介绍AUTOSAR规范及车用控制器软件开发,内容覆盖基础架构、SWC/RTE、通信栈、诊断、存储、安全、看门狗、工具链、环境配置与项目实战,并持续更新各模块的集成机制与工程要点。

不脱发的程序猿 3925

假人有限元模型

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

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

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

小立仔 1331

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

linux下删除非空目录命令

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

静水流深 1836

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

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

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

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

余额充值