/*
功能:演示了利用C语言递归遍历指定目录下的子目录和文件!
说明:经修改也可以搜索文件名符合特定格式的文件,如修改“\\*.*”为“\\*.log”
*/
#include <iostream>
#include <string>
#include <io.h>
using namespace std;
void filesearch(string path, int layer)
{
struct _finddata_t filefind;
string curr = path + "\\*.*";                           // 修改此处改变搜索条件
int done = 0, i, handle;
if((handle = _findfirst(curr.c_str(), &filefind)) != -1)
{
while(!(done = _findnext(handle, &filefind)))
{
if(strcmp(filefind.name, "..") == 0)
continue;
for(i = 0;i <layer; i++)
printf("\t");
if((_A_SUBDIR == filefind.attrib))                // 是目录
{
printf("[Dir]:\t%s\n", filefind.name);
curr = path + "\\" + filefind.name;
filesearch(curr, layer+1);                 // 递归遍历子目录
}
else
{
printf("[File]:\t%s\n", filefind.name);
}
}
_findclose(handle);
}
}
int main()
{
string path("E:\\Program\\Proc");
filesearch(path, 0);
return 0;
}

运行结果如:

[File]: 20111010.log
[File]: 20111011.log
[File]: 20111012.log
[File]: 20111013.log
[File]: 20111014.log
[Dir]:  demo10_1
[Dir]:  Debug
[File]: demo10_1.exe
[File]: demo10_1.obj
[File]: demo10_1.pdb
[File]: demo10_1.sbr
[File]: vc60.pdb
[File]: demo10_1.c
[File]: demo10_1.dsp
[File]: demo10_1.dsw
[File]: demo10_1.ncb
[File]: demo10_1.opt
[File]: demo10_1.pc
[File]: demo10_1.plg
[Dir]:  proc
[File]: sqlnet.log
[Dir]:  demo10_2
[Dir]:  Debug
[File]: demo10_2.exe
[File]: demo10_2.obj
[File]: demo10_2.pdb
[File]: vc60.pdb
[File]: demo10_2.c
[File]: demo10_2.dsp
[File]: demo10_2.dsw
[File]: demo10_2.ncb
[File]: demo10_2.opt
[File]: demo10_2.pc
[File]: demo10_2.plg
[Dir]:  proc
[Dir]:  demo2
[Dir]:  Debug
[File]: demo2.exe
[File]: demo2.obj
[File]: demo2.pdb
[File]: demo2.sbr
[File]: vc60.pdb
[File]: demo2.c
[File]: demo2.dsp
[File]: demo2.dsw
[File]: demo2.ncb
[File]: demo2.opt
[File]: demo2.pc
[File]: demo2.plg
[Dir]:  proc
[File]: sqlnet.log
[Dir]:  demo6_2
[Dir]:  Debug
[File]: demo6_2.exe
[File]: demo6_2.pdb
[File]: m.obj
[File]: vc60.pdb
[File]: demo6_2.dsp
[File]: demo6_2.dsw
[File]: demo6_2.ncb
[File]: demo6_2.opt
[File]: demo6_2.plg
[File]: m.c
[File]: m.pc
[Dir]:  proc
[File]: pre_20111015.log
请按任意键继续. . .

[Windowns C]递归遍历指定目录下的子目录和文件相关推荐

  1. [Linux C]递归遍历指定目录下的子目录和文件

    /* 功能:演示了在Linux下利用C语言递归遍历指定目录下的子目录(不含隐藏目录)和文件 */ #include <stdio.h> #include <dirent.h> ...

  2. findfirst findnext 递归查找指定目录下所有子目录下所有文件,为什么总是死机?...

    findfirst findnext 递归查找指定目录下所有子目录下所有文件,为什么总是死机? Delphi / Windows SDK/API http://www.delphi2007.net/D ...

  3. C#递归遍历指定目录下文件和文件夹

    1 #region 使用递归查询某路径中的文件结构 2 3 4 public static void CheckFilePath() 5 { 6 ReadFilePath(@"E:\Test ...

  4. [Linux C]递归遍历指定目录,以目录树形式展示

    /* 功能:演示了利用C语言递归遍历指定目录下的子目录(不含隐藏目录)和文件,并以目录树形式展示! 其中编译命令为:gcc -o travel travel.c -std=c99 */ #includ ...

  5. C++删除目录,包括该目录下所有子目录和文件

    目录 一.FindFirstFile 1.函数功能: 2.函数原型: 3.参数: 4.返回值: 5.注意: 二.FindNextFile 1.函数功能: 2.函数原型: 3.参数: 4.返回值: 5. ...

  6. Linux学习:读取目录内容 (目录名和类型)和递归统计指定目录下普通文件个数练习

    一.读取目录内容 #include <stdio.h> #include <unistd.h> #include <dirent.h> #include <s ...

  7. Java 遍历指定目录下的所有目录

    使用File类的list方法遍历指定目录下的所有目录 完整代码 import java.io.*;class Main {public static void main(String[] args) ...

  8. Java 目录操作二(获取文件的上级目录、获取目录最后修改时间、打印目录结构、遍历指定目录下的所有目录)

    获取文件的上级目录 import java.io.File;public class Main {public static void main(String[] args) {File file = ...

  9. php遍历指定目录下的文件,PHP遍历指定目录下所有文件和目录

    PHP目录遍历程序代码,将显示指定目录下的所有文件和文件夹,并列出这些文件,最后统计出文件总数.使用的PHP函数有is_dir.closedir.scan_dir等. 本代码比较准确,可判断目录下的是 ...

最新文章

  1. Git系列之git log高级命令
  2. Kong APIGW — 基本操作
  3. 给一个Table添加合计行[Tips]
  4. linux重定向文件不存在,shell 12 21 filename重定向的含义和区别
  5. java如何对一个表达式开根号_作为一个零基础的新手,如何系统的自学Java和JavaEE开发技术?...
  6. linux socket接收不到16进制数据,C下通过socket收发十六进制数据解决办法
  7. JEECG开源社区招收学生说明
  8. C#LeetCode刷题-二分查找​​​​​​​
  9. php代码审计是什么意思,php代码审计基础篇
  10. github怎么切换到gitee_Github 如何和 Gitee 进行同步?
  11. 《C++ Primer Plus》第15章 友元、异常和其他 学习笔记
  12. Android 开发之 ---- 底层驱动开发(一)
  13. linux Sprintf中文乱码,Linux下printf、fprintf、sprintf的区别
  14. STC学习:按键消抖计数
  15. Mysql/Oracle——常用SQL语句
  16. 如何提高团队管理能力10
  17. linux 编辑文件命令
  18. vuetify 学习第一天之v-data-table_表格组件
  19. 小程序“Mustache”语法{{}}(双大括号)获取不到值或图片
  20. SpringBoot 优雅地对接口进行数据加解密

热门文章

  1. UPS分类:直流UPS和交流UPS
  2. 第三讲系统的基本操作
  3. 怎么看服务器上jdk安装位置,查看云服务器jdk安装路径
  4. 576. 出界的路径数
  5. spring里面 @Controller和@RestController注解的区别
  6. leetcode1039. 多边形三角剖分的最低得分(动态规划)
  7. 深入理解了MySQL,你才能说熟悉数据库
  8. oracle 的使用
  9. Python3 爬虫爬取中国图书网(淘书团) 记录
  10. [Axure教程]0001.新手入门基础