我想使用FUSE实现一个文件系统。当请求目录的内容时,仅将该目录中的文件类型报告为子目录。例如,如果目录中有ugur.PDF、guler.JPG和devatate.PNG文件,则不会报告文件本身,但会报告类型(PDF、JPG和PNG)。我试图实现这个文件系统。我的问题是,我无法想象在不更改ls-l命令的情况下如何进行报告?ls-l命令是如何工作的?(我有一个readdir函数,它将file_type和file_name加载到缓冲区。我试着改变,但我不能实现)
发布于 2009-12-27 11:23:31
ls -l是如何工作的?这似乎是问题的症结所在。它调用fstat(2)。该系统调用将填充stat结构。在实现fuse提供程序时,您提供的数据最终会出现在stat结构中。如果要更改目录结构,则返回各种项的必要伪造信息。
发布于 2012-09-25 12:35:39
我可以想到两种方法: 1.使用像SQLite这样的数据库,您可以将文件、路径和文件类型存储在数据库中。然后,当用户进入某个目录时,您可以说执行一些查询,如select filler file_types“”,并使用filler() 2填充为目录。递归遍历原始路径您可以创建当前目录中所有文件类型的列表,然后使用filler()将它们作为目录进行post。然后,当用户进入任何一个目录时,您可以再次执行检查或其他操作,以查看cur_path是否在last_path(原始目录)中,您可以选择这些文件类型并显示它们
https://stackoverflow.com/questions/1964792
复制相似问题