4

有没有办法在 .NET 中模拟磁盘驱动器,拦截读/写/锁定操作?我想在 C#
中创建一个类似于GMail Drive的前端。

谢谢,汤姆

4

6 回答 6

7

在 Linux 上,您可以使用 Mono.Fuse API ( http://www.jprl.com/Projects/mono-fuse.html ) 来使用用户级代码实现基于 .NET 的文件系统。

于 2008-09-26T15:09:18.797 回答
2

您可以看到http://www.truecrypt.org/是如何做到的。它通过使用文件或使用驱动器或分区来做到这一点。然后它安装文件,就好像它是一个真正的驱动器一样。现在,可能源代码有点复杂;)

于 2009-05-13T15:36:00.587 回答
1

为此,我自己使用 Eldos回调文件系统,虽然它很好,但并不便宜。

还有一些免费/便宜的项目,我敢肯定其中一个最近在 SO 上的类似问题中被提及——不过,目前找不到了。然而,稳定性往往是一个主要问题,因为分层的 Windows 文件系统驱动程序并非微不足道。

于 2008-09-26T07:10:05.433 回答
0

并非如此,.Net 位于诸如磁盘访问之类的操作系统功能之上,为您提供托管文件访问器之类的东西。您可以用托管 C# 编写所有这些功能,但您需要非托管调用才能使操作系统将其视为另一个驱动器。

所有外壳扩展的东西都是 COM: http: //msdn.microsoft.com/en-us/library/cc147467 (VS.85).aspx

但是,您可以编写一个允许从资源管理器拖放并且看起来像文件系统视图的 .Net 桌面应用程序。

于 2008-09-26T07:15:51.753 回答
0

您还可以将EZNamespaceExtension 用于 .NET。这使您可以与 Windows 资源管理器集成。考虑到许可证是每个开发人员而不是分发,所以不会太贵。

更新 EZNamespaceExtension.NET 的大问题。它已经很久没有更新了。LogicNP 似乎对 EZNamespaceExtension.NET 失去了兴趣,因为自 2010 年以来还没有发布具有少数新功能的版本。不支持 .NET 4,也不支持 Windows 8 功能区工具栏

于 2009-11-18T10:56:57.977 回答
0

我刚刚使用上面的链接检查了 .NET 的 EZNamespaceExtension 。似乎它们与 2013 版本保持同步。但不确定是否可以回答在 Explorer.exe 中显示为驱动器的问题(AFAIK。它不能显示为驱动器号)

于 2013-04-28T04:31:27.493 回答