0

我必须创建一个程序,在特定目录的子目录(下例中的文件夹 A)中搜索文件“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 ?
4

2 回答 2

3

在原始 Win32 中,这将使用 来完成FindFirstFile,但您必须手动编写递归代码;很难正确处理所有极端情况(例如,如果您有创建循环目录结构的重解析点会发生什么?)。

为了更方便,您可以使用Boost.Filesystem; 类recursive_directory_iterator正是你想要的。过去我也使用过recls 库,我很满意——它可以正常工作。

于 2012-04-18T12:30:16.763 回答
1

我知道如何完成这项任务的最佳方法是使用 Boost.filesystem 库。

http://www.boost.org/doc/libs/1_49_0/libs/filesystem/v3/doc/index.htm

它提供了一个目录迭代器(和一个递归目录迭代器),允许您遍历目录中的文件和目录,以查找您需要的文件。

于 2012-04-18T12:29:04.177 回答