C语言怎么读取某一文件夹下的所有文件夹和文件?

C语言怎么读取某一文件夹下的所有文件夹和文件?,第1张

读取的代码方式如下:

int main()

{

long file

struct _finddata_t find

_chdir("d:\\")

if((file=_findfirst("*.*", &find))==-1L)

{

printf("空白!\n")

exit(0)

}

printf("%s\n", find.name)

while(_findnext(file, &find)==0)

{

printf("%s\n", find.name)

}

_findclose(file)

return 0

}

用C语言读取目录中的文件名的方法:

1、如果是在window环境下,可以液祥用一下方法:

使用stdlib.h头文件声明的system()函敏念数,调用系统命令dir,把c:目录下文件列表桥埋困写入文件dir.txt中

2、使用dirent.h头文件中声明的opendir(),readdir()函数

3、如果没有dirent.h,可以使用io.h头文件中声明的_findfirst(),_findnext()函数:

1、可以利用getenv函数来实现。

在Linux系统中,home目录的定义是通过系统环境变量中的HOME变量值来确定的,在shell下可以通过

echo $HOME来查看。

而在C语言中,库函数getenv可以用作获取环差枣境变量值。该函数位于stdlib.h, 原型为

char *getenv(char *name)

功能为获取名字为name的环境变量字符串。

所以,下面代码就可以获取到home目录名了:

2、镇埋例程虚旅拆:

char *home

home = getenv("HOME")

printf("the home path is %s\n", home)

我也有同样的问题。

到网上查,感觉实现较复杂。

最后用的是c语言调用cmd

生成文件列表文件,再用c语言去读取那个文件。进行字符串处理核茄。

c语言调用cmd 为 system(“cmd命令”);

比如:

#include <stdio.h>

#include <dos.h>

int main()

{

system("dir /s /卖瞎b >filelist.txt")/*这是全部文件,包括子目录*/

system("dir *.txt /b >filelist2.txt")/*当改配察前目录下的所有txt文件,不包括子目录*/

/*然后*/

sleep(100)

FILE * ptrin = fopen("filelist","r")/*读取并进行处理*/

/*处理*/

/*关闭文件flose(ptrin)*/

return 0

}

希望有谁有更好的办法。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12272222.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存