[Windowns C]递归遍历指定目录下的子目录和文件
/*
功能:演示了利用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]递归遍历指定目录下的子目录和文件相关推荐
- [Linux C]递归遍历指定目录下的子目录和文件
/* 功能:演示了在Linux下利用C语言递归遍历指定目录下的子目录(不含隐藏目录)和文件 */ #include <stdio.h> #include <dirent.h> ...
- findfirst findnext 递归查找指定目录下所有子目录下所有文件,为什么总是死机?...
findfirst findnext 递归查找指定目录下所有子目录下所有文件,为什么总是死机? Delphi / Windows SDK/API http://www.delphi2007.net/D ...
- C#递归遍历指定目录下文件和文件夹
1 #region 使用递归查询某路径中的文件结构 2 3 4 public static void CheckFilePath() 5 { 6 ReadFilePath(@"E:\Test ...
- [Linux C]递归遍历指定目录,以目录树形式展示
/* 功能:演示了利用C语言递归遍历指定目录下的子目录(不含隐藏目录)和文件,并以目录树形式展示! 其中编译命令为:gcc -o travel travel.c -std=c99 */ #includ ...
- C++删除目录,包括该目录下所有子目录和文件
目录 一.FindFirstFile 1.函数功能: 2.函数原型: 3.参数: 4.返回值: 5.注意: 二.FindNextFile 1.函数功能: 2.函数原型: 3.参数: 4.返回值: 5. ...
- Linux学习:读取目录内容 (目录名和类型)和递归统计指定目录下普通文件个数练习
一.读取目录内容 #include <stdio.h> #include <unistd.h> #include <dirent.h> #include <s ...
- Java 遍历指定目录下的所有目录
使用File类的list方法遍历指定目录下的所有目录 完整代码 import java.io.*;class Main {public static void main(String[] args) ...
- Java 目录操作二(获取文件的上级目录、获取目录最后修改时间、打印目录结构、遍历指定目录下的所有目录)
获取文件的上级目录 import java.io.File;public class Main {public static void main(String[] args) {File file = ...
- php遍历指定目录下的文件,PHP遍历指定目录下所有文件和目录
PHP目录遍历程序代码,将显示指定目录下的所有文件和文件夹,并列出这些文件,最后统计出文件总数.使用的PHP函数有is_dir.closedir.scan_dir等. 本代码比较准确,可判断目录下的是 ...
最新文章
- Git系列之git log高级命令
- Kong APIGW — 基本操作
- 给一个Table添加合计行[Tips]
- linux重定向文件不存在,shell 12 21 filename重定向的含义和区别
- java如何对一个表达式开根号_作为一个零基础的新手,如何系统的自学Java和JavaEE开发技术?...
- linux socket接收不到16进制数据,C下通过socket收发十六进制数据解决办法
- JEECG开源社区招收学生说明
- C#LeetCode刷题-二分查找​​​​​​​
- php代码审计是什么意思,php代码审计基础篇
- github怎么切换到gitee_Github 如何和 Gitee 进行同步?
- 《C++ Primer Plus》第15章 友元、异常和其他 学习笔记
- Android 开发之 ---- 底层驱动开发(一)
- linux Sprintf中文乱码,Linux下printf、fprintf、sprintf的区别
- STC学习:按键消抖计数
- Mysql/Oracle——常用SQL语句
- 如何提高团队管理能力10
- linux 编辑文件命令
- vuetify 学习第一天之v-data-table_表格组件
- 小程序“Mustache”语法{{}}(双大括号)获取不到值或图片
- SpringBoot 优雅地对接口进行数据加解密