0

我对此功能有疑问:

dirp = opendir(ruta);

    if (dirp != NULL){   
        while ((direntp=readdir(dirp)) != NULL) {       
            stat(ruta, &estructura);

对不起我的英语......我希望你能理解我

-------------------------------------------------- ----------------------------------

谢谢,该功能完美运行!

我为此更改了代码:

while ((direntp=readdir(dirp)) != NULL) {       
                sprintf( cwd, "%s/%s", ruta, direntp->d_name );
                    stat(cwd, &estructura );

感谢您的帮助,很抱歉在这里写信,但我无法在 7 小时内发表评论。谢谢!!!!!!!

谢谢你

4

2 回答 2

2

这是因为您从目录中获取信息,即您传递给stat的目录。opendir

您必须使用该目录作为基础,然后附加您从readdir.

于 2013-10-18T10:34:11.273 回答
1

您总是调用stat目录本身。

这个 ...:

while ((direntp=readdir(dirp)) != NULL) {       
    stat(ruta, &estructura);
    ...
}

...应该是这样的:

while ((direntp=readdir(dirp)) != NULL) {       
    char pathname[1024];
    sprintf( pathname, "%s/%s", ruta, direntp->d_name );
    stat( pathname, &estructura );

    ...
}
于 2013-10-18T10:34:20.470 回答