0
我正在搜索當前目錄中的目錄,如果我跨目錄,我進入並搜索目錄和文件,但我找不到問題。我總是得到相同的結果和一些特定的目錄。在代碼中,我得到數組中的目錄名並打印它們。結果如下所示;如何打印這些目錄下的所有目錄和文件?
direc Num (except parent and curr) : 6
/home/sabri/Desktop/Test/Untitled Folder 3
/home/sabri/Desktop/Test/Untitled Folder 3
/home/sabri/Desktop/Test/Untitled Folder 3
/home/sabri/Desktop/Test/Untitled Folder 3
/home/sabri/Desktop/Test
/home/sabri/Desktop/Test/Untitled Folder 4
/home/sabri/Desktop/Test/Untitled Folder 4
/home/sabri/Desktop/Test/Untitled Folder 4
但我的目錄是;
Untitled Folder 1
Untitled Folder 2
Untitled Folder 3
Untitled Folder 4
Untitled Folder 5
int listFilesIndir(char *currDir)
{
struct dirent *direntp;
char newDir[20][250];
DIR *dirp;
int x ,y =0,i=0 ;
if ((dirp = opendir(currDir)) == NULL)
{
perror ("Failed to open directory");
return 1;
}
while ((direntp = readdir(dirp)) != NULL)
{
printf("%s\n", direntp->d_name);
if(direntp->d_type == DT_DIR)
{
y++;
chdir(direntp->d_name);
getcwd(newDir[i],250);
listNewDir(direntp->d_name);
i++;
}
}
printf("direc Num (except parent and current) : %d\n",y-2);
for (i = 0; i < 10; ++i)
{
printf("%s\n", newDir[i]);
}
while ((closedir(dirp) == -1) && (errno == EINTR)) ;
return 0;
}
int listNewDir(char *currDir)
{
struct dirent *direntp;
DIR *dirp;
if ((dirp = opendir(currDir)) == NULL)
{
perror ("Failed to open directory");
return 1;
}
while ((direntp = readdir(dirp)) != NULL)
printf("%s\n", direntp->d_name);
while ((closedir(dirp) == -1) && (errno == EINTR)) ;
return 0;
}
您可能會發現[ftw] [1](文件樹步行)在這裏有幫助! [1]:http://linux.die.net/man/3/ftw – Joe
@joe:當添加評論時,請點擊「幫助」鏈接查看如何在評論中嵌入鏈接 - 它不是與Q&A編輯器中使用的Markdown語法相同。 – Clifford
@Clifford Ta,我想知道我搞砸了什麼! :-) – Joe