在目录中列出同一目录中的所有文件使用visual C++
答
在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_
开始列举的简单方式。如果您还需要查看子目录,那么您应该扩展该方法以递归处理每个子目录,并更改它以便检查所有文件,并在每个文件上测试文件名匹配。