24

很长一段时间以来,我一直在寻找 .NET 中的一个类,它具有使操作系统认为在特定位置有一个文件(或目录,或两者等)的功能 - 但所有钩子都是传递给代码中的函数(或事件?)。

例子:

如果我浏览到“x:\fake_directory\”,我会在那里看到一个文件,“fake_file.txt”。如果我双击该文件,Notepad.exe 将启动并且文件内容会显示“Hello World”。“Hello World”将来自我的 c# 代码。

我希望班级可以做的例子(也许这会更好地解释它):

VirtualFile.Register("c:\my_file.txt",
    delegate { return Encoding.Ascii.GetBytes("Hello World"); });

当然,这是我正在寻找的简化版本……但希望你能明白。

100% 需要这样做的原因是使用需要读取和写入文件系统以进行通信的遗留代码或专有(以及非常旧的遗留垃圾)系统。

4

2 回答 2

7

我相信 Dokan 会满足您对虚拟文件系统库的需求。Dokan 是用 C++ 编写的,但有一个 .NET 库可以交互。

多坎链接

另一方面,我相信 IPC 会更好地实现您在评论中给出的示例所需的功能。

于 2011-02-14T13:37:25.787 回答
3

根据您的数据是静态的还是动态生成的,您会找到适合您需求的回调文件系统实体文件系统操作系统版本(两者都是我们的产品)。SolFS 是一个带有内置容器的即用型虚拟文件系统。回调文件系统是一个没有容器的虚拟文件系统(您可以即时提供结构和数据)。

于 2011-02-16T21:08:42.600 回答