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:UsersswiftslySearch160 002searchAP584.txt
任何帮助是极大的赞赏!
答案
这个问题的最终解决方案,在Squashman的建议的帮助下使用/R
而不是/f
是:
@echo off
for /R %%f in (*.txt) do echo %%f
这将打印出子目录中所有.txt文件的列表。
以上是关于C语言遍历目录中的文件的主要内容,如果未能解决你的问题,请参考以下文章