mark
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
void main(int argc, char **argv)
{
struct stat fileStat;
struct dirent dirInfo;
struct dirent *ptr = NULL;
FILE *fp = NULL;
DIR *pDir = NULL;
if(argc < 3)
{
printf("***********************\n");
printf("./folder dirpath bmp. example:./folder /home/test bmp\n");
printf("\n***********************\n");
return;
}
pDir = opendir(argv[1]);
if(NULL == pDir)
{
printf("open dir:%s fail\n", argv[1]);
perror("Error:");
return;
}
while(NULL != (ptr = readdir(pDir)))
{
if (0 == strcmp(ptr->d_name, ".") || 0 == strcmp(ptr->d_name, ".."))
{
continue;
}
else if(ptr->d_type == 8)
{
if (NULL == strstr(ptr->d_name, argv[2]))
{
printf("%s is file. need %s file\n", ptr->d_name, argv[2]);
continue;
}
else{
printf("%s is file. catch one>>>>>>>>>>>>>\n", ptr->d_name);
}
}
else if(ptr->d_type == 10)
{
printf("%s is link.\n", ptr->d_name);
}
else if(ptr->d_type == 4)
{
printf("%s is dir.\n", ptr->d_name);
//递归可以实现轮训所有文件夹
}
}
//关闭目录句柄
closedir(pDir);
}