【发布时间】:2019-06-19 04:28:23
【问题描述】:
我想通过访问“C:\windows\system32\Tasks”目录中的所有文件来列出在任务计划程序下运行的所有文件。
程序应递归地保持打开目录中的子文件夹并列出所有文件。我目前使用 Windows 操作系统。
我尝试使用 COM 库,但它不显示子文件夹中的任务。我有 60 个任务,但它只显示 12 个。所以,我尝试遍历 Tasks 文件夹。
#include <stdio.h>
#include <dirent.h>
int main(void)
{
DIR *dir;
struct dirent *de;
if ((dir = opendir("C:\\Windows\\System32\\Tasks")) != NULL);
{
printf("The startup Programs are:\n");
while ((de = readdir(dir)) != NULL)
{
printf("%s\n", de->d_name);
}
closedir(dir);
}
getchar();
}
我希望输出显示当前文件夹和子文件夹中的所有文件。 但是,输出只显示第一个文件夹的名称并退出。
【问题讨论】:
-
我删除了 C++ 标签:除非 OP 另有说明,否则这看起来真的像 C。@OP: C != C++
-
@πάνταῥεῖ,适用于 unix。他需要它用于 Windows。 unix versin 将无法正常工作。
-
@πάνταῥεῖ,您的两个链接都指向同一个解决方案。
-
@Paul “他在 Windows 上需要它。” 提到了 POSIX 函数。无论如何都应该工作。
-
Raisa,你应该使用
FindFirstFile和FindNextFile。