我正在使用 Dokan 编写文件系统。我想要实现的是允许用户访问多个源上的文件,就好像它们都在本地文件夹中一样。即文件可以在本地、远程位置或内存中使用。
最初,我创建了描述实际文件可用位置的占位符(例如 win8.1 OneDrive)。当用户访问文件时,我首先读取占位符。知道该文件的真实位置后,我读取了真实文件并将数据发送回用户应用程序。
经过大约一个小时的编码,我发现这个想法严重错误。如果文件的真实位置在 Internet 上,这将起作用。但是如果该文件在本地可用,我实际上需要请求我的硬盘驱动器来查找两个文件(占位符和真实文件)。此外,如果文件在内存中可用(用户这样做是为了提高性能),我仍然需要访问硬盘驱动器,这使得将文件缓存到 RAM 中毫无意义。
所以...我想我必须编写自己的文件表,例如 NTFS MFT。好吧,文件表的概念很简单。但是我不确定我是否可以编写一个像 NTFS 一样高效的。然后我开始考虑数据库。但我也不确定这是否是个好主意......
我应该怎么办?
谢谢!
PS。我只有非常基本的文件系统知识。