我必须创建一个程序来搜索特定目录(下例中的folderA)的子目录中的文件“letter.txt”。
例如:
folderA/
folderA1/...
folderA2/...
folderA3/...
folderA4/letter.txt
folderA5/...
我必须使用什么API:
- list subdirectories of a specific directory ( folderA ),
- open each of these subdirectories ( folderA1, folderA2, folderA3, etc )
- search and open the file letter.txt ?
答案 0 :(得分:3)
在原始Win32中,这将使用FindFirstFile
完成,但您必须手动编写递归代码;很难让所有的角落情况都正确(例如,如果你有创建循环目录结构的重新分析点会发生什么?)。
为了更方便,您可以使用Boost.Filesystem
; class recursive_directory_iterator
完全符合你的要求。在过去,我也使用了recls library,我非常满意 - 它只是有效。
答案 1 :(得分:1)
我知道如何执行该任务的最佳方式是使用Boost.filesystem库。
http://www.boost.org/doc/libs/1_49_0/libs/filesystem/v3/doc/index.htm
它提供了一个目录迭代器(和一个递归目录迭代器),它允许您遍历目录中的文件和目录,寻找您需要的文件。