[英]C: Read all *.txt files in a directory
我正在尝试制作一个程序,该程序可以读取目录中的所有.txt
文件。 它使用file->d_name
获取每个文件的名称,但是现在我需要打开文件来使用它们。
#include <dirent.h>
#include <stdlib.h>
#include <stdio.h>
int main (int argc, char *argv[]) {
DIR *directory;
struct dirent* file;
FILE *a;
char ch;
if (argc != 2) {
printf("Error\n", argv[0]);
exit(1);
}
directory = opendir(argv[1]);
if (directory == NULL) {
printf("Error\n");
exit(2);
}
while ((file=readdir(directory)) != NULL) {
printf("%s\n", file->d_name);
// And now????
}
closedir(directory);
}
你写了:
while ((file=readdir(directory)) != NULL) { printf("%s\\n",file->d_name); //And now???? }
检查目录条目是文件还是目录。 如果它不是常规文件,请继续下一个目录条目。
if ( file->d_type != DT_REG ) { continue; }
我们有文件。 通过组合目录名称和目录条目中的文件名称来创建文件的名称。
char filename[1000]; // Make sure this is large enough. sprintf(filename, "%s/%s", argv[1], file->d_name);
使用标准库函数打开和读取文件的内容。
FILE* fin = fopen(filename, "r"); if ( fin != NULL ) { // Read the contents of the file }
在处理下一个目录条目之前,请关闭文件。
fclose(fin);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.