编写自己的文件系统时的性能问题

时间:2015-08-04 08:00:19

标签: c# .net filesystems dokan

我正在使用Dokan编写文件系统。我想要实现的是允许用户访问多个源上的文件,就像它们都在本地文件夹上一样。即文件可以在本地,远程位置或内存中使用。

最初我创建的占位符描述了实际文件的可用位置(如win8.1 OneDrive)。当用户访问文件时,我首先阅读占位符。知道了该文件的真实位置后,我读取了真实文件并将数据发送回用户应用程序。

经过大约一个小时的编码后,我发现这个想法严重错误。如果文件的真实位置在Internet上,这将起作用。但如果文件在本地可用,我实际上需要请求我的硬盘驱动器找到两个文件(占位符和真实文件)。此外,如果文件在内存中可用(用户这样做是为了提高性能),我仍然需要访问硬盘驱动器,这使得将文件缓存到RAM中毫无意义。

所以......我想我必须编写自己的文件表,就像NTFS MFT一样。好吧,文件表的概念很简单。但是我不确定我是否可以编写一个和NTFS一样高效的版本。然后我开始考虑数据库。但我也不确定这是不是一个好主意......

我该怎么办?

谢谢!

PS。我只对文件系统有非常基本的了解。

0 个答案:

没有答案