参考了网络上各路大神的实现方法。主要使用了io.h库


  1. #include <iostream>
  2. #include <cstring>
  3. #include <io.h>
  4. using namespace std;
  5. void visitDir(const char* dir)
  6. {
  7. char dirNew[100];
  8. strcpy(dirNew, dir);
  9. strcat(dirNew, "\\*.docx"); // 在目录后面加上"\\*.*"进行第一次搜索
  10. intptr_t handle;
  11. _finddata_t findData;
  12. handle = _findfirst(dirNew, &findData);
  13. if (handle == -1)// 检查是否成功
  14. {
  15. datafile.close();
  16. return;
  17. }
  18. do
  19. {
  20. if (findData.attrib & _A_SUBDIR)
  21. {
  22. if(strcmp(findData.name, ".") == 0 || strcmp(findData.name, "..") == 0)
  23. continue;
  24. cout << findData.name << "\t<dir>\n";// 在目录后面加上"\\"和搜索到的目录名进行下一次搜索
  25. strcpy(dirNew, dir);
  26. strcat(dirNew, "\\");
  27. strcat(dirNew, findData.name);
  28. visitDir(dirNew);
  29. }
  30. else
  31. cout << findData.name << "\t" << findData.size << " bytes.\n";
  32. }while (_findnext(handle, &findData) == 0);
  33. _findclose(handle);
  34. }
  35. int main()
  36. {
  37. char dir[100];
  38. cout<<"Enter a directory:";
  39. cin.getline(dir,100);
  40. visitDir(dir);
  41. return 0;
  42. }

一种跨平台的C++遍历目录的方法的更多相关文章

  1. 在Linux下和Windows下遍历目录的方法及如何达成一致性操作

    最近因为测试目的需要遍历一个目录下面的所有文件进行操作,主要是读每个文件的内容,只要知道文件名就OK了.在Java中直接用File类就可以搞定,因为Java中使用了组合模式,使得客户端对单个文件和文件 ...

  2. lua在linxu和windows系统下的遍历目录的方法

    在windows下遍历目录使用lfs库:例如遍历整个目录下的所有文件 local lfs = require "lfs" function findPathName(path)  ...

  3. python里两种遍历目录的方法

    os.walk 函数声明:os.walk(top,topdown=True,onerror=None) (1)参数top表示需要遍历的顶级目录的路径. (2)参数topdown的默认值是“True”表 ...

  4. python遍历目录的方法 walk listdir

    这篇文章里描述了这些情况: https://www.cnblogs.com/jiaxin359/p/7324077.html 不用递归的时候,用 listdir 需要递归的时候,用walk

  5. PHP遍历目录四种方法

    学习SPL的时候,遇到了DirectoryIterator这个目录类,谢了一下遍历目录的方法.于是总结一下遍历目录的四种写法 如下: <?php /* * 方法一:利用SPL的目录类,这个很简单 ...

  6. Java-File类获取目录下文件名-遍历目录file.listFiles

    package com.hxzy.IOSer;import java.io.*;/*File 类获取功能 * List * ListFile * */public class Demo06 { pub ...

  7. java基础29 迭代器 listIterator() 及各种遍历集合的方法

    listIterator() 迭代器包含了 Iterator() 迭代器中的所有方法. 1.ListIterator的常用方法 hasPrevious() :判断是否还有上一个元素,有则返回true  ...

  8. C++遍历目录,并把目录里超过7天的文件删除(跨平台windows&linux)

    C++遍历目录,并把目录里超过7天的文件删除,适用于项目里删除过期的日志,或者视频文件. 在windows和linux下测试通过. windows测试结果: linux测试结果: 源码: #inclu ...

  9. ZH奶酪:PHP遍历目录/文件的3种方法

    其实PHP中内建函数scandir()就可以返回目录下全部文件和目录了... ========================== 1.使用$obj = dir($dir)返回目录对象$obj,然后使 ...

随机推荐

  1. JS异步编程 (1)

    JS异步编程 (1) 1.1 什么叫异步 异步(async)是相对于同步(sync)而言的,很好理解. 同步就是一件事一件事的执行.只有前一个任务执行完毕,才能执行后一个任务.而异步比如: setTi ...

  2. js 中 函数的返回值问题

    var result=''; function searchByStationName( address ) { // map.clearOverlays();//清空原来的标注 var keywor ...

  3. asp.net mvc5 step by step(一)——CURD增删查改Demo

    1.  新建一个项目:

  4. Hibernate基础入门

    Hibernate是一个开放源代码的对象关系映射框架,它将POJO与数据库表之间建立映射关系.是全自动的ORM框架,可以自动生成SQL语句并自动执行.它对JDBC进行了非常轻量级的封装,使程序员可以随 ...

  5. fastdfs安装过程

    Fastdfs于centos7的安装步骤(支持横向拓展) 主要目的:根据网上教程搭建时遇到的问题以及描述不明确的地方进行补充和说明 一.首先需要准备以下4个文件 nginx-1.12.0.tar.gz ...

  6. 在tornado中使用异步mysql操作

    在使用tornado框架进行开发的过程中,发现tornado的mysql数据库操作并不是一步的,造成了所有用户行为的堵塞.tornado本身是一个异步的框架,要求所有的操作都应该是异步的,但是数据库这 ...

  7. Yii中实现分页

    $criteria = new CDbCriteria(); // 查询字段 $criteria->select = 'id, name, create_time'; // 排序 $criter ...

  8. [Java]Java 9运行Spring Boot项目报错的解决办法

    简介 为了学习和尽快掌握 Java 9 的模块化(Module System)新特性,最近安装了 JDK 9,新建了一个 Spring Boot 进行尝试, 过程中遇到了一下报错问题,写下此文谨作为个 ...

  9. PHP留言板的实现思路

    本文实例为大家分享了php留言板的实现思路,供大家参考,具体内容如下:1.创建一个存放留言信息的文件名2.获取表单中的数据给一个变量3.判断文件的时候存在4.对文件执行写的操作,在这之前,注意打开文件 ...

  10. 如何快速生成数据库字典(thinkphp5.0)

    本教程将教你快速生成数据库字典 示例代码使用PHP框架:Thinkphp5.0 PHP代码: /** * 生成数据库字典html * 可直接另存为再copy到word文档中使用 * * @return ...