Linux/Unix下读取指定目录下的所有文件名


调用系统函数opendir()和readdir来实现遍历Linux/Unix下的某个指定目录下的所有文件,并输出文件名。

实现代码如下:

  1. /* 
  2.     Author: ACb0y 
  3.     FileName: main.cpp 
  4.     Create Time: 2011年8月1日0:41:18 
  5.     Version: V1.0 
  6.     www.bkjia.com
  7.  */  
  8. #include <iostream>   
  9. #include "apue.h"   
  10. #include <dirent.h>   
  11. using namespace std;  
  12.   
  13. int main(int argc, char * argv[])  
  14. {  
  15.     DIR *dp;  
  16.     struct dirent *dirp;  
  17.     if (argc != 2)   
  18.     {  
  19.         err_quit("Usage: ls directory_name");  
  20.     }  
  21.       
  22.     //打开指定的目录   
  23.     if ((dp = opendir(argv[1])) == NULL)  
  24.     {  
  25.         err_sys("can't open %s", argv[1]);  
  26.     }  
  27.       
  28.     //遍历目录   
  29.     while ((dirp = readdir(dp)) != NULL)  
  30.     {  
  31.         printf("%s\n", dirp->d_name);  
  32.     }  
  33.       
  34.     //关闭目录   
  35.     closedir(dp);  
  36.     return 0;  
  37. }  

相关内容