Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6684132
  • 博文数量: 1159
  • 博客积分: 12444
  • 博客等级: 上将
  • 技术积分: 12570
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-13 21:34
文章分类

全部博文(1159)

文章存档

2016年(126)

2015年(350)

2014年(56)

2013年(91)

2012年(182)

2011年(193)

2010年(138)

2009年(23)

分类: C/C++

2015-12-30 17:25:49

[root@localhost 桌面]# g++ temp.cpp -o temp.exe
[root@localhost 桌面]# ./temp.exe
/etc/nginx/html/database/processTemplate/
a
a
2
HeatingRepair.xml
TestNotePad.xml
[root@localhost 桌面]#



temp.cpp

点击(此处)折叠或打开

  1. //indent -npro -kr -i8 -ts8 -sob -l280 -ss -ncs -cp1 *.c *.h *.cpp *.hpp
  2. //indent -npro -kr -i8 -ts8 -sob -l280 -ss -ncs -cp1 *

  3. #include <string.h>
  4. #include <iostream>
  5. #include <vector>
  6. #include <string>
  7. #include <dirent.h>
  8. using namespace std;

  9. typedef vector < string > FilesList;
  10. void ls(const string & sDir, FilesList & files, const char *acExtension);

  11. int main()
  12. {
  13.     FilesList files;
  14.     ls("/etc/nginx/html/database/processTemplate/", files, ".xml");

  15.     cout << files.size() << endl;

  16.     for (int i = 0; i < files.size(); i++)    //ztg add
  17.     {
  18.         cout << files[i] << endl;
  19.     }
  20.     return 0;
  21. }

  22. void ls(const string & sDir, FilesList & files, const char *acExtension)
  23. {
  24.     int return_code;
  25.     DIR *dir;
  26.     struct dirent entry;
  27.     struct dirent *res;

  28.     char *sourceDir = new char[sDir.size() + 4];
  29.     strcpy(sourceDir, sDir.c_str());
  30.     //strcat(sourceDir, "\\*");

  31.     cout << sourceDir << endl;

  32.     if ((dir = opendir(sourceDir)) != NULL) {    //open dir
  33.         for (return_code = readdir_r(dir, &entry, &res); res != NULL && return_code == 0; return_code = readdir_r(dir, &entry, &res)) {
  34.             if (entry.d_type != DT_DIR) {    //save to files
  35.                 //doc_list.push_back(string(entry.d_name));
  36.                 cout << "a" << endl;
  37.                 if ((acExtension != NULL)) {

  38.                     string sFile = entry.d_name;

  39.                     int iPos = sFile.find_last_of(".");
  40.                     if ((iPos == string::npos) || (strcmp(acExtension, sFile.substr(iPos).c_str())))
  41.                         continue;
  42.                 }

  43.                 files.push_back(entry.d_name);
  44.             }
  45.         }
  46.         closedir(dir);    //close dir
  47.     }
  48. }

阅读(2614) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~