|
程序:dir.c
#include <dirent.h> #include <sys/types.h> #include <stdio.h> int main(int argc, char** argv){ DIR *dir=NULL; struct dirent* pDir=NULL; dir=opendir(argv[1]); if(dir == NULL) printf("Error! can't open this dir\n"); else{ while(1) {
pDir = readdir(dir);
if (pDir == NULL) break;
if (pDir.d_type == DT_REG) printf("%s\n",pDir ->d_name); } } closedir(dir); return 0; }
编译:gcc -o dir dir.c
运行:./dir ./
运行的结果是打印输出当前目录下的所有普通文件。
注意 d_type /* File types for `d_type'. */ enum { DT_UNKNOWN = 0, # define DT_UNKNOWN DT_UNKNOWN DT_FIFO = 1, # define DT_FIFO DT_FIFO//管道文件 DT_CHR = 2, # define DT_CHR DT_CHR//特殊字符文件 DT_DIR = 4, # define DT_DIR DT_DIR//目录文件 DT_BLK = 6, # define DT_BLK DT_BLK//块特殊文件 DT_REG = 8, # define DT_REG DT_REG//普通文件 DT_LNK = 10, # define DT_LNK DT_LNK//符号链接文件 DT_SOCK = 12, # define DT_SOCK DT_SOCK//套接字 DT_WHT = 14 # define DT_WHT DT_WHT };
|