如何在Windows中编写自己的“文件系统”?

时间:2009-12-26 04:43:01

标签: c++ windows filesystems

我已经回想起之前使用的小'文件系统'基本上提供了一个其他东西的接口。例如,我相信有一个GMail文件系统在我的电脑中创建了一个条目,可以像本地计算机上的任何其他驱动器一样使用。我怎样才能在C ++中实现这样的东西呢? 谢谢!

6 个答案:

答案 0 :(得分:21)

试试Dokan。它就像FUSE,除了Windows。我认为名称空间扩展存在某些限制,例如它们无法从命令行访问,但我现在还不确定。

答案 1 :(得分:10)

编写实际的文件系统涉及编写驱动程序;这意味着内核模式代码(可怕的东西)和支付获得IFS DDK。 (编辑:看起来他们不再收费了)

您可能需要的是“命名空间扩展”。 试试这个:The Complete Idiot's Guide to Writing Namespace Extensions - CodeProject

答案 2 :(得分:1)

这可能是以GMail文件系统过去的方式扩展NTFS的起点:Windows NT reparse points

答案 3 :(得分:1)

GMail文件系统只是给出的名称;它不是任何文件系统。它只是Windows资源管理器的命名空间扩展,它与您的GMail帐户相关联!

我不确切地知道你想要做什么,但无论如何,我相信,以下链接对你有用:

http://msdn.microsoft.com/en-us/magazine/cc188741.aspx

答案 4 :(得分:1)

仅作为参考:可以使用我们的Callback File System产品创建虚拟驱动器,该产品是受支持,记录和维护的解决方案。

答案 5 :(得分:0)

我也在想这个,也许是一些示例代码? (如果我忘记了PLZ,请给我发电子邮件; p doin sdk now)

我正在考虑一个类似的文件系统,它会作为驱动程序插入并允许对较大文件进行动态“软raid”,主要是将它们放在多个磁盘上,可能是一些压缩选项和“智能”过滤器来切换使用情况在高磁盘空间低使用率和其他情况下更有效,状态控制和指标也是正常程序

好像我会加载驱动程序工具包, 然后我想要文件写入事件,并且主要是自动替换fopen和类似的功能作为具有一点Windows网络驱动程序体验的中间驱动程序

我还听说过在虚拟机上进行开发以获得更少崩溃和更多调试的好处

也可能更多关于部分或全部文件的元信息,包括带有选项的特殊文件夹中的文件,包括文件夹,指定,全部,字母等上的快速和简单(混淆和/或对称密钥)加密选项,或者无论是什么,或者更慢的版本,也许是集成的和可选的(也是有利可图的)在线cvs式差异式备份,主要针对热门文件的变化,以间隔和价格进行在线备份,大多数情况下可能与匹配的键盘事件相关,甚至可能仅仅是有用的一个相当安全的键盘记录在线备份服务

同时避免使用常见文件,例如Windows文件或'program'目录中的普通文件,可以使用盗版工具轻松复制,与所有文档不同。