【发布时间】:2015-10-05 02:49:35
【问题描述】:
我希望能够获取文件夹和文件的列表(如果可能的话带有子文件夹)并返回它(例如数组)
所以我有这个脚本:
DIR *dir;
struct dirent *ent;
if ((dir = opendir ("c:\\src\\")) != NULL) {
/* print all the files and directories within directory */
while ((ent = readdir (dir)) != NULL) {
printf ("%s\n", ent->d_name); // I dont want to print, I want to add it to a array
}
closedir (dir);
} else {
/* could not open directory */
perror ("");
return EXIT_FAILURE;
}
所以我可以这样做:
array = getFolders('.');
现在,如果我遍历数组,我可以看到所有文件夹和文件。
eg:
array[0] = 'file1.txt';
array[1] = 'folder1/';
array[2] = 'folder1/file2.txt';
array[3] = 'folder1/file3.txt';
array[4] = 'folder2/';
array[5] = 'folder3/';
array[6] = 'folder3/filez.txt';
等等……
【问题讨论】:
-
@BLUEPIXY 这也会获取文件吗?
-
为什么要将它添加到数组中?如果您只是要遍历该数组以对每个文件名执行某些操作,那么在
readdir()循环的主体中执行此操作会更有效。 -
@JonathonReinhart 因为我将在代码中多次使用该数组。我阅读了文件夹结构,然后我使用了 4 次...我不想重新扫描 4 次结构...您会在每次需要时扫描 /home 文件夹吗?
-
@PatREllery 有一个链接目的地的示例代码。
标签: c arrays file directory subdirectory