如何隐藏和C中的文件夹?

时间:2014-02-01 20:09:53

标签: c file dir stat readdir

我正在尝试使用语言C列出文件夹的所有文件夹和所有文件。

这是以下代码:

#include <errno.h>
#include <stdio.h>
#include <dirent.h>
#include <sys/stat.h>

int main (int argc, char *argv[])
{
    struct dirent *direnp;
    struct stat filestat;
    DIR *dirp;

    if (argc != 2) {
        printf("error");
        return 1;
    }

    if ((dirp = opendir(argv[1])) == NULL) {
        printf("error");
        return 1;
    }

    while ((direnp = readdir(dirp)) != NULL)
    {
        stat(direnp->d_name, &filestat);
        printf("%s\n", direnp->d_name); 
    }

    return 0;
}

进入cmd后 ./file.c文件夹

此代码的输出为:

folder1
folder2
file1.txt
..
.
file2.txt

我希望删除此部分:

..
.

所以我希望的输出是:

folder1
folder2
file1.txt
file2.txt

如何隐藏3个点?

(编辑:代码中有一些错误。我更正了它)

1 个答案:

答案 0 :(得分:6)

只需在while循环中过滤它们:

if (strcmp(direnp->d_name, ".") != 0 && strcmp(direnp->d_name, "..") != 0) {
   printf("%s\n", direnp->d_name);    
}