- 论坛徽章:
- 0
|
遍历一个文件夹下的所有文件。
#include stdlib.h>
#include stdio.h>
#include dirent.h>
#include unistd.h>
#include sys/stat.h>
int main(int argc, char** argv)
{
DIR* dst;
struct dirent *entry;
struct stat info;
if (argc != 2)
{
fprintf(stderr, "There must be 2 arguments");
exit(EXIT_FAILURE);
}
if ((dst = opendir(argv[1])) == NULL)
{
perror("Fail to open dir");
return -1;
}/*get dst dir entry*/
if(chdir(argv[1]) == -1)
{
perror("Fail while changing directory");
return -1;
}/*change cwd to dst dir*/
while ((entry = readdir(dst)) != NULL)
{/*reading all the file information*/
if(stat(entry->d_name,&info) == -1)
{
perror("Fail to get the file stat");
continue;
}/*getting file state*/
if(S_ISREG(info.st_mode))
printf("%s\n",entry->d_name);
}
return 0;
}
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/18481/showart_1684946.html |
|