我必须相信这个问题必须已经多次回答,但我找不到。使用Visual Studio C(不是C ++或C#),如何获取另一个目录中的目录列表?我已经尝试搜索“获取目录列表”和“获取文件夹列表”和“查找目录中的文件夹”。
有人可以启发我1)实际获得一个目录列表和2)我在选择的搜索条件中做错了,我无法找到我认为应该是一个相对常见的问题。
答案 0 :(得分:0)
EX:编译为Dirc.exe, 用法:dirc -d [目录]
#include <stdio.h>
#include <dirent.h>
int main();
void get_args();
void help();
void get_args(int argc, char** argv)
{
int i;
for (i = 1; i < argc; i++) {
if (argv[i][0] == '-') {
switch (argv[i][1]) {
case 'd': for (i = 2; i < argc; i++){
struct dirent *dp;
DIR *dfd = opendir(argv[i]);
if(dfd != NULL) {
while((dp = readdir(dfd)) != NULL)
printf("%s\n", dp->d_name);
closedir(dfd);
}
}
break;
default:
fprintf(stderr,
"\nERROR: Unknown switch %s\n", argv[i]);
help();
}
} else {
for (i = 1; i < argc; i++){
printf("%s ", argv[i]);}
}
}
}
int main(int argc, char** argv)
{
get_args(argc, argv);
if (argc==1){ help();}
}
void help()
{
printf("\n Usage: dirc.exe [Arguments] [Dir]\n");
printf(" Example: dirc -y words\n");
printf("\n Arguments:");
printf("\n -d |Directory|");
}
答案 1 :(得分:0)
NTDLS 的答案可以解决您的问题:
Listing directory contents using C and Windows
您必须更改该功能,以便跳过文件,但这不应该是问题。如果您不想列出子目录的所有文件夹:在if语句中省略递归调用。