最近各种搞C++文件操作, 顺手记录一下
也可以加个系统判断把这两段结合起来写个兼容方法

macOS

#include <dirent.h>
#include <iostream>using namespace std;void removeDir(const char* dirPath)
{struct dirent *dirp;cout << "dirPath:" <<dirPath << endl;DIR* dir = opendir(dirPath);while ((dirp = readdir(dir)) != nullptr) {// 完整路径string name = dirp->d_name;string path = dirPath;if (dirp->d_type == DT_REG) {// 文件remove((path+name).c_str());cout << "文件路径" << path+name << endl;} else if (dirp->d_type == DT_DIR) {// 文件夹// 此处需注意特殊系统文件if(name!="." && name!=".."){removeDir((path+name+"/").c_str());cout << "文件夹路径" << path+name+"/" << endl;}}}closedir(dir);
}

windows

#include <direct.h>
#include <string>using namespace std;void  removeDir(const char* dirPath)
{struct _finddata_t fb;   // 查找相同属性文件的存储结构体char  path[250];long long  handle; // 注意此处需要long*2int   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);}
}

C++递归删除目录下所有文件(macOS和windows两种)相关推荐

  1. 递归删除目录下.svn文件

    原文:http://imysqldba.blog.51cto.com/1222376/1104901 ------------------------------------------------- ...

  2. 递归删除目录下的所有文件

    import java.io.File; public class DeleteDirectory { /** * 删除空目录 * @param dir 将要删除的目录路径 */ private st ...

  3. linux删除目录或文件命令行,Linux删除目录下的文件的10种方法小结

    看到了一遍文章,便突发奇想的想起Linux中删除目录下的所有文件的方法:整理了几个,如有不足,还望读者不吝赐教! 删除当前目录下的文件 1.rm -f * #最经典的方法,删除当前目录下的所有类型的文 ...

  4. linux命令如何删除子目录文件,Linux如何删除目录下所有文件包括子目录

    Linux删除目录下所有文件包括子目录方法:rm -rf 目录名. Linux操作系统是UNIX操作系统的一种克隆系统,它诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间).以后借助于 ...

  5. php怎么一键删除全部文件,删除目录下所有文件_php 批量删除目录下所有文件与文件夹...

    摘要 腾兴网为您分享:php 批量删除目录下所有文件与文件夹,智影,掌上看家,弈玩游戏,一起成长等软件知识,以及还呗app,乐语,论文降重软件,暗黑破坏神1,闭嘴表情,maple,刷说说赞,荣耀路由p ...

  6. linux删除test文件夹,Linux删除目录下的文件的几种方法

    Linux删除目录下的文件的几种方法 删除当前目录下的文件 1.rm -f * #最经典的方法,删除当前目录下的所有类型的文件 2.find . -type f -delete或find . -typ ...

  7. Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行——怎么将Unix/Mac系统下的文件转换到Windows系统下

    先交代一下遇到的问题: 本人用的是Windows系统.在学习Triangle Mesh时,想将bunny.ply等经典的PLY文件导入程序中. 但是,文件被读入程序后,所有的内容变成了一行.从而,现成 ...

  8. java对文件进行压缩的两种方法

    在工作中,我们或多或少都会接触到文件的压缩和解压,在window系统中,我们只需下载一个能对文件进行解压缩的应用即可,但如果让我们自己动手写对文件压缩的代码,顿时就头大了. 在java中,我们都知道输 ...

  9. 简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?

    简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么? 参考答案: (1)ftp有两种登录方式:匿名登录和授权登录.使用匿名登录时,用户名为:anonymous ...

最新文章

  1. Leetcode 188.买卖股票的最佳时机IV
  2. 能让你的Intellij IDEA 起飞的几个设置(设置背景 字体 快捷键 鼠标悬停提示 提示忽略大小写 取消单行显示)
  3. 【ZZ】Python安装模块出错(ImportError: No module named s...
  4. python做一个小游戏_利用python做个小游戏
  5. 大数据之-Hadoop之HDFS的API操作_机架感知_副本存储的节点的选择---大数据之hadoop工作笔记0068
  6. php 文件上传框架,Laravel框架实现文件上传的方法分析
  7. ubuntu 下安装 phpmyadmin 过程记录
  8. pandas.iloc, pandas.loc用法
  9. fill()和fill()_n函数还有memset()函数的比较
  10. 电容 电阻0201/0402/0603/等封装长宽高定义
  11. 数据结构导论(第一章概论)
  12. 氚云后台代码-创建、更新子表以及发送消息
  13. 如何生成支付宝小程序链接,点击直接打开并进入某个页面
  14. CSDN——缩进两个字符
  15. 沈海高速汕尾往深圳服务器维护报价,沈海高速收费
  16. 前沿重器[4] | 腾讯搜索的Quer理解如何直击心灵
  17. 腾讯数据科学家详解用户选择行为分析核心模型
  18. 视频流 FFmpeg kvs等
  19. oracle第五章多表连接习题答案(理解+剖析)
  20. [极客大挑战 2019]HardSQL

热门文章

  1. css显示内容越来越模糊_55个提高你CSS开发效率的必备片段
  2. 【转载】如何写出低碳环保的 Android 代码
  3. 【Python脚本进阶】1.3、第二个脚本:Zip文件口令破解机
  4. 开源网安入选“2023年中国信通院开源供应商名录”
  5. 操作系统系列之基础篇
  6. 以DxR算法思想为基准设计出的路由项定位结构图解
  7. 空中客车公司采用3D打印零件的A350宽体飞机
  8. 搞笑的短视频配音怎么制作?两个小方法来帮忙,好学又好做
  9. Android开发中的线程池使用
  10. 浙江省高校计算机等级考试二级Python 程序设计题12——统计缺课学生名单|2023备考