c:忽略父文件,子文件和DS_STORE文件

时间:2017-04-08 09:10:27

标签: c file directory

我正在尝试创建一个遍历目录的程序,并为所有子目录打印"This is a directory",这对于所有文本文件/照片等都是"regular file"

问题是,当我这样做时,会显示父,子和DS_STORE文件和目录。

我知道这个论坛上有类似的问题,但其中一些问题要么太先进,要么专注于其他语言。

为了清楚起见,我试图在忽略父,子和DS_Store文件/文件夹的情况下迭代目录。

这是我到目前为止所拥有的:

所有包含/定义语句

#include    <unistd.h>
#include    <string.h>
#include    <errno.h>
#include    <fcntl.h>
#include <stdbool.h>
#include <sys/stat.h>
#include <dirent.h>
#include<stdio.h>
#include <unistd.h>
#define BUFFERSIZE      4096
#define COPYMODE        0644
#define FILE_MODE   S_IRWXU

DIR *directory;
struct dirent *entry;

功能

bool isaDie(struct dirent *aFile)

{
    char fileType = aFile->d_type;
    switch(fileType)
    {
        case DT_DIR:
            printf("this is a directory \n");
             return true;
            break;

        case DT_REG:

            printf("This is a regular file \n");
            return false;
        default: printf("Unknown file type \n");
  }       return false;
}



struct stat;

void goThoughFile( const char  *aFilePath )
{

directory = opendir(aFilePath);

    if(directory == NULL)
    {
        printf("Error");
        exit(1);

    }

else
{
    while( (entry = readdir(directory)) != NULL)
    {
        printf("%s", entry->d_name);

    isaDie(entry);
    }
  }
}

主要

  int main()
{


    goThoughFile("somePathHere" );


    return 0;
 }

0 个答案:

没有答案