我正在尝试创建一个遍历目录的程序,并为所有子目录打印"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;
}