我需要根据一些规则将多个NTFS文件夹的内容合并为一个。 这些规则将确保没有冲突的名称。
我最简单的解决方案是将NTFS Link(或Junction)创建到指向源文件夹中每个文件的目标文件夹中。
到目前为止这可行,但我遇到的问题是不会发生其他文件,删除的文件也不会消失。
嗯,当然我可以运行后台进程(服务)监听文件系统的源文件夹,并在你的飞行中对NTFS链接进行适当的修改,但这是要走的路吗?
第一个问题是: 1.最优雅的方式是什么? 2.我见过多个程序,例如可以将ZIP或ISO文件的内容挂载到某个NTFS文件夹。他们是如何运作的?
P.S。目标是以编程方式完成所有操作(c#和/或c ++)。
答案 0 :(得分:2)
这是一个允许您在Window中创建用户模式文件系统的项目:Dokan:
如果要在Windows上创建新文件系统,例如 改进FAT或NTFS,需要开发文件系统驱动程序。 开发在Windows上以内核模式工作的设备驱动程序是 非常困难。通过使用Dokan库,您可以创建自己的库 文件系统非常容易,无需编写设备驱动程序。
答案 1 :(得分:2)
可以通过两种方式将内容映射到现有文件夹:
两种方法都需要相应的内核模式驱动程序。
公开ZIP(或其他类似文件)的应用程序使用上述方法之一。作为磁盘映像的ISO文件可以直接作为虚拟磁盘公开,也可以挂载到NTFS文件夹。在后一种情况下,需要内核模式磁盘驱动程序。
您的特定任务可以使用我们的Callback File System(CBFS)产品完成。 CBFS提供预先创建的内核模式驱动程序,允许您在用户模式下编写与文件系统相关的代码。 CBFS包含几乎可以查找的Mapper示例 - 它将现有文件夹的内容显示为新的虚拟文件系统,您可以将其安装到NTFS文件夹(CBFS支持此功能)。公共非商业项目可以使用非商业许可证。 API适用于.NET,C ++,Java和Delphi。