gpt4 book ai didi

c - 如何搜索当前目录中的文件和当前目录下目录中的文件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:57:10 25 4
gpt4 key购买 nike

该函数搜索当前目录中的文件。如果它穿过一个目录,它会进入并再次搜索除当前“。”之外的文件。和之前的“..”目录。但它没有按我想要的方式工作。它没有进入下一个目录。

int foo(char *currDir) 
{
struct dirent *direntp;
DIR *dirp;
char currentDir[250];



if ((dirp = opendir(currDir)) == NULL)
{
perror ("Failed to open directory");
return 1;
}

//By Sabri Mev at GYTE

while ((direntp = readdir(dirp)) != NULL)
{
printf("%s\n", direntp->d_name);
if(direntp->d_type == DT_DIR)
{
if(strcmp(direntp->d_name,".") !=0 && strcmp(direntp->d_name,"..") != 0)
foo(direntp->d_name); //Recursive!
}
}
getcwd(currentDir,250);
printf("curr Dir : %s\n",currentDir );


while ((closedir(dirp) == -1) && (errno == EINTR)) ;

return 0;
}

最佳答案

因为你的路径有误

试试这个

if(direntp->d_type == DT_DIR)
{
if(strcmp(direntp->d_name,".") !=0 && strcmp(direntp->d_name,"..") != 0)
{
sprintf(currentDir, "%s/%s", currDir, direntp->d_name);
foo(currentDir); //Recursive!
}
}

关于c - 如何搜索当前目录中的文件和当前目录下目录中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15764149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com