gpt4 book ai didi

c++ - 如何使用C/C++读取目录的文件索引?

转载 作者:行者123 更新时间:2023-11-30 21:43:01 26 4
gpt4 key购买 nike

我们在C或C++中使用什么方法(或库函数)来读取目录中的文件索引(即所有文件的列表)。

我的动机是创建一个函数,通过读取目录中的文件列表来在目录(或文件系统)中进行扩展搜索。由于我们还不知道磁盘上存在哪些文件,因此我们无法打开和读取它们。

但是,我知道 Unix/Linux 中的“ls”和“dir”等程序能够读取目录的内容;由于这些操作系统也大多是用 C 语言编写的,因此必须有某种方法可以在一个程序下创建类似的功能。

以下是我要使用的算法:

  1. 接受用户输入以导航到文件系统上的目录
  2. 读取文件内容
  3. 创建一个链表,并将我们刚刚读取的目录内容添加到其中
  4. 使用链表读取文件名,并使用现有算法逐一搜索文件内容
  5. 将输出写入屏幕,解释找到的结果(结果按照现有算法决定的顺序或优先级进行索引)。

我已经编写了步骤 4 和 5 中使用的算法,并且可以自己完成步骤 1 和 3。我遇到的唯一问题是第 2 步。是否有 C/C++ 库或任何其他方法可以解决此问题?

谢谢!

最佳答案

更新#1:适应已编辑的问题

知道您的目录路径,您可以使用 opendir()打开目录。然后你通过readdir()读取目录。您检索所需内容,然后使用 closedir() 关闭目录。 。请注意,这些是 UNIX 的系统调用。所以你的代码将不可移植。无论如何,在此头文件( dirent.h )中,您可以找到处理目录所需的所有函数。

原始答案:

可能有效的是使用 exec()系统调用。您通常会调用下划线系统调用来为您完成这项工作并在程序中收集结果。在这种情况下,您使用的是 Linux(根据标签),因此您可以使用 lsfindgrep 程序来列出您的文件。示例可参见 here

关于c++ - 如何使用C/C++读取目录的文件索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17548557/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com