在一个目录中我有一些名称以“a_”开头的文件,如何在Visual C ++中列出所有以相同关键字开头的文件?
答案 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_
开头的所有文件(和子目录)的简单方法。如果您还需要查看子目录,那么您应该扩展该方法以递归处理每个子目录,并更改它以便检查所有文件,并测试每个文件的文件名匹配。