诸如dropBox(http://www.dropBox.com/)和expandrive(http://www.expandrive.com/mac)等应用程序使用什么技术将功能直接构建到每个平台上的本地文件系统中?任何人都可以提出任何可以在所有主要平台上实现最大代码重用的东西?
到目前为止,我只看过linux上的FUSE,我喜欢我看到的.
解决方法
实现虚拟文件系统是非常特定的操作系统.原因是驱动程序的架构在Unix类操作系统和
Windows中是不同的.
为避免编写自己的驱动程序,可以使用用户模式文件系统工具包.在Linux上,BSD和MacOS分别有FUSE和OSXFUSE(现在是非活动的MacFUSE的分支).在Windows上,我们使用了Callback File System.
DropBox目前没有虚拟文件系统,但只有shell扩展(afaik他们计划创建一个虚拟磁盘,但我不知道他们已经决定了什么).
关于如何跟踪文件更改:存在几种方法.最简单的是扫描定时器上的目录,并比较时间戳和文件大小.接下来,可以使用FindFirstChangeNotification WinAPI功能.最先进和最可靠的方法是使用文件系统过滤器驱动程序.在Windows上我们可以使用CallbackFilter.在MacOS X和Linux上,您可以获得类似于.NET / Windows中FileSystemWatcher提供的后期通知.特别是在Linux上,可以使用inotify.