【发布时间】:2011-12-30 10:11:33
【问题描述】:
我正在尝试创建一个函数来扫描我的 Windows PC 上的文件夹,每次扫描时,都会在一个名为“Filter.txt”的文件中附加字符串“Test Script”。
现在的问题是2,第一个是扫描必须在目录c:\LOG或其子目录中执行,第二个是我不知道如何在目录中链接fopen和文件名。
int main(){
DIR *dir;
FILE * pFile;
char myString[100];
struct dirent *ent;
dir = opendir ("c:\\LOG");
if (dir != NULL) {
/* print all the files and directories */
while ((ent = readdir (dir)) != NULL) {
pFile = fopen ("Filter.txt","a");
if (pFile==NULL)
perror("Error");
else
fprintf(pFile,"%s\n","Test scriptIno");
fclose(pFile);
//printf ("%s\n", ent->d_name);
}
closedir (dir);
} else {
/* Can not open directory */
perror ("");
return EXIT_FAILURE;
}
}
【问题讨论】:
-
您不应该将 C 用于此类任务。更好地研究像 Perl 这样的脚本语言。每种语言/技术都是为特定目的而开发的。开发 C 是为了制作操作系统,而不是编写脚本。如果你有兴趣,我可以给你看一个 Perl 的例子。
-
@m0skit0:在 K&R 中,他们将 C 描述为“通用语言”。我没有找到“仅用于开发操作系统”之类的免责声明。
-
@undur_gongor:那是在 1972 年。现在你不想用 C 编写这样的脚本。除非您想真正学习 C,否则这只是浪费时间。这就是说,C 可能是我最喜欢的语言,但必须知道何时使用什么。
-
@m0skit0:不是 1978 年?虽然总的来说我同意,但可能有理由做这样的事情 C.
-
是的,1978 年为 K&R,正确。 1972 年是 C 真正诞生的那一年。可能是有原因的,正如我在之前的评论中所说的那样,但是引入脚本语言是有原因的。
标签: c directory opendir readdir