有没有办法在.NET中模拟磁盘驱动器,拦截读/写/锁定操作? 我想在C#中使用类似于GMail Drive的前端创建一些东西。
谢谢, 汤姆
答案 0 :(得分:7)
在Linux上,您可以使用Mono.Fuse API(http://www.jprl.com/Projects/mono-fuse.html)来实现具有用户密码的基于.NET的文件系统。
答案 1 :(得分:2)
你可以看到http://www.truecrypt.org/是如何做到的。它正是通过使用文件或使用驱动器或分区来完成的。然后它将文件安装为真正的驱动器。现在,可能源代码有点复杂;)
答案 2 :(得分:1)
我为此目的使用了Eldos Callback File System,但虽然它很好,但并不便宜。
还有一些免费/廉价的项目,我相信其中有一个项目最近在类似的问题上被提及 - 目前暂时找不到它了。但是,稳定性往往是一个主要问题,因为分层的Windows文件系统驱动程序并非易事。
答案 3 :(得分:0)
实际上,.Net位于操作系统功能之上,如磁盘访问,可以为您提供托管文件访问器等内容。您可以在托管C#中编写所有内容,但是您需要非托管调用才能使操作系统像另一个驱动器。
所有shell扩展内容都是COM:http://msdn.microsoft.com/en-us/library/cc147467(VS.85).aspx
然而,您可以编写一个.Net桌面应用程序,该应用程序允许从资源管理器拖放,看起来像文件系统视图。
答案 4 :(得分:0)
您也可以使用EZNamespaceExtension for .NET。这使您可以与Windows资源管理器集成。鉴于许可证是按开发人员而非分发许可证,并不算太贵。
<强>更新强> EZNamespaceExtension.NET的大问题。它已经很久没有更新了。 LogicNP似乎已经失去了对EZNamespaceExtension.NET的兴趣,因为自2010年以来还没有新版本的新功能。没有.NET 4支持,也没有对Windows 8功能区工具栏的支持
答案 5 :(得分:0)
我只是通过以上链接结帐EZNamespaceExtension for .NET。它似乎与2013版本一致。但不确定是否可以回答在Explorer.exe中显示为驱动器的问题(AFAIK。它不能显示为驱动器号)