C - 读取子目录中的文件



我得到了一个包含多个子目录的目录的路径。每个子目录都有一个名为"st"的文件。我正在尝试从每个子目录中读取每个 st 文件,但在调用 fopen 时总是收到一个 NULL 指针???

我的代码:

int main(){
DIR *dir;
struct dirent *ent;
FILE *st;
dir=opendir("/home/me/Desktop/dir/");
while( (ent=readdir(dir)) != NULL ){
    if(ent->d_type == DT_DIR && strcmp(ent->d_name, ".") != 0  && strcmp(ent->d_name, "..") != 0 ){
        DIR *subDir = opendir(ent->d_name);
        st = fopen("st", "r");
        if(st == NULL){
            perror("doesn't exist");
        } 
    }
}
closedir(dir);
}    

问题是 end->d_name 中的名称只是目录内"文件"的名称,它不是完整的路径,这意味着你调用

DIR *subDir = opendir(ent->d_name);

尝试在进程当前目录中查找目录。

您需要采用传递到第一个opendir调用的路径,并附加新的路径部分。

相关内容

  • 没有找到相关文章

最新更新