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

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

读桥埋困取的代码方式如下:

intmain()

{

longfile

struct_finddata_tfind

_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)

return0

}

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

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

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

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

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

#include <stdio.h>

#include <stdlib.h>

#include <string.h>戚乎

#define BUF_SIZE 1024

#define KEY "AB2345"

#define KEY_LEN 7

int main()

{

int ch = 0

int first = 1//开始时的标志,因为是一个字符一个字符的扫描

int flag = 0//文件开辩码头是不是所要读内容的标志

int count = 0//遇到'\n'的个数

int pre_pos = 0, cur_pos = 0//前一次和当前文件指针位置

char buf[BUF_SIZE] = {0}

FILE *fp = NULL

fp = fopen("test.txt", "r")

if (fp == NULL)

{

printf("Cann't open the file!\n")

exit(1)

}

else

{

while ((ch = fgetc(fp)) != EOF)

{

if (first)

{

//若要读取的内容在文件开头就有时

//移动指针到文件开头

fseek(fp, -1L, SEEK_CUR)

fgets(buf, KEY_LEN, fp)

if (strcmp(buf, KEY) == 0)

{

first = 0

flag = 1

continue

}

else

{

first = 0

}

}

if (ch == '\n')

{

count++//遇到'\n'的个数

pre_pos = cur_pos//上次遇到'\n'时文件指针的位置

cur_pos = ftell(fp)//当前遇到'\n'时文件指针高灶悉的位置

//文件开头内容符合要求的就适当移动指针位置

//然后读取输出来

if (count == 1 &&flag == 1)

{

fseek(fp, 0L, SEEK_SET)

memset(buf, 0, sizeof(buf))

fgets(buf, cur_pos - 1, fp)

printf("%s\n", buf)

}

//之后内容符合要求的就适当移动指针位置

//然后读取输出来

else

{

memset(buf, 0, sizeof(buf))

fgets(buf, KEY_LEN, fp)

if (strcmp(buf, KEY) == 0)

{

fseek(fp, (-1) * (KEY_LEN - 1), SEEK_CUR)

memset(buf, 0, sizeof(buf))

fgets(buf, cur_pos-1-pre_pos, fp)

printf("%s\n", buf)

}

}

}

}

}

fclose(fp)

return 0

}


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存