2

我想使用 FUSE 实现一个文件系统。当请求目录的内容时,只会将该目录中的文件类型报告为子目录。例如,如果目录中有 ugur.PDF、guler.JPG 和 devatate.PNG 文件,则不会报告文件本身,而是会报告类型(PDF、JPG 和 PNG)。我试图实现这个文件系统。我的问题是我无法想象在不更改 ls-l 命令的情况下如何报告?ls -l 命令如何工作?(我有一个 readdir 函数,它将 file_type 和 file_name 加载到缓冲区。我试图改变但我无法实现)

4

2 回答 2

5

如何ls -l工作?这似乎是问题的症结所在。它调用fstat(2). 该系统调用填充了该stat结构。当你实现一个熔断器提供者时,你提供的是最终在 stat 结构中的数据。如果要更改目录结构,则返回各种项目的必要虚构信息。

于 2009-12-27T03:23:31.153 回答
0

我可以想到两种方法: 1. 使用像 SQLite 这样的数据库,您可以在数据库中存储文件、路径和文件类型。然后,当用户进入某个目录时,您可以说执行一些查询,例如 select file_types where path="" 并使用填充器()填充为目录 2. 递归遍历原始路径,您可以在当前目录中创建所有文件类型的列表,然后使用filler() 将它们发布为目录。然后,当用户进入任何一个目录时,您可以再次检查或检查 cur_path 是否在 last_path(orig 目录)中,您可以选择这些文件类型并显示它们

于 2012-09-25T04:35:38.880 回答