【发布时间】:2013-07-07 01:54:09
【问题描述】:
我们在 C 或 C++ 中使用什么方法(或库函数)来读取目录中的文件索引(即所有文件的列表)。
我的动机是创建一个函数,通过读取目录中的文件列表,在目录(或文件系统)中进行扩展搜索。由于我们还不知道磁盘上存在哪些文件,因此我们无法打开和读取它们。
但是,我知道 Unix/Linux 中的 'ls' 和 'dir' 之类的程序能够读取目录的内容;由于这些操作系统也大多是用 C 语言编写的,因此必须有某种方法可以在一个程序下创建类似的功能。
以下是我要使用的算法:
- 接受用户输入以导航到文件系统上的目录
- 读取文件内容
- 制作一个链表并将我们刚刚读取的目录的内容添加到其中
- 使用链表读取文件名并使用现有算法逐一搜索文件内容
- 将输出写入屏幕,解释找到的结果(结果按现有算法确定的顺序或优先级编入索引)。
我已经编写了第 4 步和第 5 步中使用的算法,并且可以自己完成第 1 步和第 3 步。我遇到的唯一问题是第 2 步。C/C++ 中是否有任何库或任何其他方法可以解决这个问题?
谢谢!
【问题讨论】:
-
C++ 和 C 都没有提供这样的功能,您需要找到并使用合适的库,例如 Boost.Filesystem。
-
或者等待 C++14 和
filesystem一起出现 :-) -
顺便说一句,磁盘分区可能没有任何文件。一些软件正在使用原始磁盘分区。从技术上讲,分区可能包含文件系统,而这些文件系统包含文件。
-
从来不知道像 Boost 这样的东西。我一定会试试的。
-
我刚刚编辑了这个问题,使其更具描述性。