C语言遍历目录中的文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言遍历目录中的文件相关的知识,希望对你有一定的参考价值。

请问在TC中用dir.h头文件中的函数,如何遍历某目录中所有文件?谢谢!

参考技术A 使用dir.h库的两个函数即可:findfirst和findnext。
首先调用findfirst函数查找是否有满足条件的某目录文件,如果返回值非0则表示找不到返回。
如果findfirst返回值为0,则循环调用findnext函数,根据返回值,如果为0,结束循环,遍历结束。否则循环调用findnext即可遍历,直到返回非0值即可。
当然,这两个函数需要定义一个结构体来存储函数返回的数据。结构体如下:
struct
ffblk

char
ff_reserved[21];
/*DOS保留字*/
char
ff_attrib;
/*文件属性*/
int
ff_ftime;
/*文件时间*/
int
ff_fdate;
/*文件日期*/
long
ff_fsize;
/*文件长度*/
char
ff_name[13];
/*文件名*/

将结构体中的ff_name[13]显示出来即可。

循环遍历子目录批处理文件中的文件

我试图遍历子目录中的一堆文件来对它们运行命令,但我似乎无法弄清楚如何到达它们。

目录结构如下:

  • 主目录(包含.bat文件和顶级目录) 子目录 搜索目录 一堆文件(我需要单独的所有这些位置)

我可以使用以下命令获取“主目录”中所有文件/文件夹的列表:

for /f %%f in ('dir /b /r *') do echo %%f

但我似乎无法弄清楚如何进一步进入目录,以获取“搜索”目录中的文件。

文件结构的一个例子是:

C:UsersswiftslySearch160002searchAP584.txt

任何帮助是极大的赞赏!

答案

这个问题的最终解决方案,在Squashman的建议的帮助下使用/R而不是/f是:

@echo off    
for /R %%f in (*.txt) do echo %%f

这将打印出子目录中所有.txt文件的列表。

以上是关于C语言遍历目录中的文件的主要内容,如果未能解决你的问题,请参考以下文章

在windows下 怎么用c语言遍历文件夹?要用纯c的

C语言 使用指针遍历数组

C/C++编程遍历文件夹,统计当前文件个数,输出文件名

Python中如何遍历指定目录下的所有文件?

C#--遍历目录实例

循环遍历子目录批处理文件中的文件