[cpp] view plaincopy print?
  1. /*
  2. 文件名:   rd.c
  3. ----------------------------------------------------
  4. c中提供的对文件夹操作的函数,只能对空文件夹进行
  5. 删除,这使很多初学者在编码过程中产生许多困扰,我也
  6. 很不爽这件事情,所以编写这个对非空文件夹进行删除的
  7. 函数,仅供参考。
  8. 注意:本函数编写以VC6为依据,其中关于文件夹的操作函数
  9. 与标准c有所区别。如VC6中的findclose可能需要用c
  10. 中的closedir()来代替。
  11. ----------------------------------------------------
  12. 日期         程序员                       变更记录
  13. 2010.4.28    海总(掌门人号)           创建文件,编写函数
  14. ----------------------------------------------------
  15. */
  16. #include <stdio.h>
  17. #include <io.h>
  18. #include <string.h>
  19. #include <direct.h>
  20. /*
  21. 函数入口:文件夹的绝对路径
  22. const char*  dirPath
  23. 函数功能:删除该文件夹,包括其中所有的文件和文件夹
  24. 返回值:  0  删除
  25. -1  路径不对,或其它情况,没有执行删除操作
  26. */
  27. int  removeDir(const char*  dirPath)
  28. {
  29. struct _finddata_t fb;   //查找相同属性文件的存储结构体
  30. char  path[250];
  31. long    handle;
  32. int  resultone;
  33. int   noFile;            //对系统隐藏文件的处理标记
  34. noFile = 0;
  35. handle = 0;
  36. //制作路径
  37. strcpy(path,dirPath);
  38. strcat (path,"/*");
  39. handle = _findfirst(path,&fb);
  40. //找到第一个匹配的文件
  41. if (handle != 0)
  42. {
  43. //当可以继续找到匹配的文件,继续执行
  44. while (0 == _findnext(handle,&fb))
  45. {
  46. //windows下,常有个系统文件,名为“..”,对它不做处理
  47. noFile = strcmp(fb.name,"..");
  48. if (0 != noFile)
  49. {
  50. //制作完整路径
  51. memset(path,0,sizeof(path));
  52. strcpy(path,dirPath);
  53. strcat(path,"/");
  54. strcat (path,fb.name);
  55. //属性值为16,则说明是文件夹,迭代
  56. if (fb.attrib == 16)
  57. {
  58. removeDir(path);
  59. }
  60. //非文件夹的文件,直接删除。对文件属性值的情况没做详细调查,可能还有其他情况。
  61. else
  62. {
  63. remove(path);
  64. }
  65. }
  66. }
  67. //关闭文件夹,只有关闭了才能删除。找这个函数找了很久,标准c中用的是closedir
  68. //经验介绍:一般产生Handle的函数执行后,都要进行关闭的动作。
  69. _findclose(handle);
  70. }
  71. //移除文件夹
  72. resultone = rmdir(dirPath);
  73. return  resultone;
  74. }

C 实现删除非空文件夹相关推荐

  1. 关于VC中删除非空文件夹

    要删除文件夹,我们可以用到SHFILEOPSTRUCT这种结构体,利用该结构体可以删除空文件夹和非空文件夹. typedef struct _SHFILEOPSTRUCT{      HWND hwn ...

  2. python 删除文件夹、删除非空文件夹

    一般删除文件时使用os库,然后利用os.remove(path)即可完成删除,如果删除空文件夹则可使用os.removedirs(path)即可,  但是如果需要删除整个文件夹,且文件夹非空时使用os ...

  3. c语言删除非空文件夹

    rmdir rmdir() 删除空的文件夹 unlink unlink(); man page 的解释: unlink() deletes a name from the filesystem. If ...

  4. cmd强制删除非空文件夹

    E:\program\anewlabor\frontend>rd /S /Q node_modules rd 删除文件夹 键入到要删除的目录下: /S删除目录及目录下的所有子目录和文件 /Q 可 ...

  5. python 删除非空文件夹

    import os import shutilos.remove(path) #删除文件 os.removedirs(path) #删除空文件夹 shutil.rmtree(path) #递归删除文件 ...

  6. vc 递归删除非空文件夹

    我觉得这是一个非常不错的递归例子 头文件 #pragma once #include <atlstr.h> #include <io.h> #include <strin ...

  7. linux删除非空文件夹

    rm -rf 文件夹名字

  8. vbs删除非空文件夹

    Set oFso = CreateObject("Scripting.FileSystemObject") oFso.DeleteFolder yourpath,True '可能后 ...

  9. Python操作FTP服务器实现文件和文件夹的上传与下载,python清理ftp目录下的所有文件和非空文件夹

    Python 连接 FTP 服务器并实现文件夹上传实例演示 第一章:连接 FTP 服务器并实现文件夹上传 ① 连接 FTP 服务器 ② 区分文件和文件夹名 ③ 文件夹名包含空格处理 ④ 使用递归实现: ...

最新文章

  1. 经典大数据面试题及解析
  2. 计算机视觉领域不同的方向:目标识别、目标检测、语义分割等
  3. JQuery EasyUi控件值的获取与设置
  4. leetcode算法题--Unique Binary Search Trees II
  5. php5 函数,2017PHP5函数大全
  6. 搭建本地文件服务器实验报告,下搭建服务器实验报告.pdf
  7. apache kafka_Apache Kafka消费者再平衡
  8. 文字转换为音频mp3的方法
  9. 2022新版X站模板 二开苹果cms视频网站源码可封装app(学习教程)
  10. 生活中的逻辑谬误04.赌徒谬误
  11. 权威发布丨2020 中国开源先锋 33 人之心尖上的开源人物
  12. 字符类型与Unicode 编码
  13. 德国奔驰、博世和保时捷的员工年薪有多少?
  14. matlab封装的模块,matlab模块封装
  15. 快速聊天回复神奇工具程序软件下载
  16. 各种稀奇古怪的问题(持续更新中)
  17. 行业大咖齐聚鹏城 八大峰会打造2021深圳国际全触与显示展“新名片”
  18. 计算机怎么重装win7,如何重装电脑系统win7,最新电脑重装系统教程
  19. 什么是CTS、CLS、CLR
  20. python初学-下载模块后导入失败(windows)

热门文章

  1. spring事务-说说Propagation及其实现原理
  2. SpringCloud_项目搭建以及Eureka
  3. 从150kHz 到 150MHz漫谈智能车竞赛中的无线导航技术
  4. 电子漫画 - 轻轻松松
  5. php中strtotime(date,js模仿php中strtotime()与date()函数实现方法
  6. mysql每秒支持多少并发_如何设计一个高并发系统?
  7. instagram api java_如何在没有用户交互的情况下获得instagram access_token(新api)?...
  8. mysql sql 1到10_(1.10)SQL优化——mysql 常见SQL优化
  9. php.zip安装教程,php如何安装zip模块?(方法介绍)
  10. 将数据库服务器的文件D 改名为,MySQL如何更改数据库数据存储目录详解