经常用到遍历目录,在win/linunx下都可以使用dirent实现。
1. windows遍历目录
【1】提供了在visual studio下使用dirent.h读取目录内文件的详细步骤,简单说来,将dirent.h的头文件包含即可;而且包含例程,如其中的ls.c
/*
* List files and directories within a directory.
*/
static void
list_directory(
const char *dirname)
{
DIR *dir;
struct dirent *ent;
/* Open directory stream */
dir = opendir (dirname);
if (dir != NULL) {
/* Print all files and directories within the directory */
while ((ent = readdir (dir)) != NULL) {
switch (ent->d_type) {
case DT_REG:
printf ("%s\n", ent->d_name);
break;
case DT_DIR:
printf ("%s/\n", ent->d_name);
break;
case DT_LNK:
printf ("%s@\n", ent->d_name);
break;
default:
printf ("%s*\n", ent->d_name);
}
}
closedir (dir);
} else {
/* Could not open directory */
printf ("Cannot open directory %s\n", dirname);
exit (EXIT_FAILURE);
}
}
2. 文件类型说明
【2】介绍了如何判断文件类型