使用visual c ++列出同一目录的所有文件

时间:2014-11-03 19:33:13

标签: visual-studio visual-c++

在一个目录中我有一些名称以“a_”开头的文件,如何在Visual C ++中列出所有以相同关键字开头的文件?

1 个答案:

答案 0 :(得分:0)

在Windows上,您可以使用FindFirstFile / FindNextFile API搜索路径中的文件。在Visual C ++中(或者通常在C ++中)没有标准的枚举文件的标准方法。但是,由于您使用的是Visual C ++,因此很有可能为Windows编程,因此查看Windows平台API以解决问题是有意义的。

 WIN32_FIND_DATA findFileData;
 HANDLE hFind;

 // find all files that start with a_ in a specific directory
 hFind = FindFirstFile("C:\\PATH\\TO\\DIRECTORY\\a_*", &findFileData);
 if (hFind != INVALID_HANDLE_VALUE) 
 {        
    while(hFind != INVALID_HANDLE_VALUE)
    {
         if (findFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
         {
              /* current entry is a directory */
         }
         else
         {
             /* file name is findFileData.cFileName */
         }    
         hFind = FindNextFile(hFind, &findFileData);
    }

    FindClose(hFind);
 }

上面的示例是枚举给定路径中以a_开头的所有文件(和子目录)的简单方法。如果您还需要查看子目录,那么您应该扩展该方法以递归处理每个子目录,并更改它以便检查所有文件,并测试每个文件的文件名匹配。