如何在文件系统上添加图层?像OneDrive或Google Drive中的缓存 我正在寻找一种方法(使用C ..net或C++和WinApi或任何东西)在文件系统和客户端应用程序之间添加一层来添加自定义行为。
像Windows上的OneDrive和Google drive应用程序。您可以正常浏览文件,但如果驱动器中缺少给定文件,则会下载该文件。我需要做类似的事情。我需要这个解决方案对其他软件(explorer和访问驱动器上文件的任何其他软件)透明如何在文件系统上添加图层?像OneDrive或Google Drive中的缓存 我正在寻找一种方法(使用C ..net或C++和WinApi或任何东西)在文件系统和客户端应用程序之间添加一层来添加自定义行为。,c++,.net,windows,winapi,filesystems,C++,.net,Windows,Winapi,Filesystems,像Windows上的OneDrive和Google drive应用程序。您可以正常浏览文件,但如果驱动器中缺少给定文件,则会下载该文件。我需要做类似的事情。我需要这个解决方案对其他软件(explorer和访问驱动器上文件的任何其他软件)透明 我真的知道该怎么称呼它。因此,如果您有这类功能的名称,请告诉我。您正在寻找的通常称为“虚拟文件系统”。对于应用程序来说,它看起来像一个文件系统,但是实现是由您自行决定的,允许您以任何您认为合适的方式具体化对象 在Windows上,有几个选项可以实现虚拟文件系
我真的知道该怎么称呼它。因此,如果您有这类功能的名称,请告诉我。您正在寻找的通常称为“虚拟文件系统”。对于应用程序来说,它看起来像一个文件系统,但是实现是由您自行决定的,允许您以任何您认为合适的方式具体化对象 在Windows上,有几个选项可以实现虚拟文件系统。最常见和最广泛支持的基础架构是。它允许您注册在文件系统中显示为项目(例如文件或文件夹)的文件。编写一个Shell名称空间扩展并不是一件小事,但它也不是火箭科学
Windows最近增加的一个功能是,它提供了在用户代码中构建虚拟文件系统所需的一切。它在Windows中作为可选组件提供,需要先显式安装。有关使用ProjFS的实现,请参阅github存储库。以下是在Windows上构建虚拟文件系统的一些方法:
- 按需加载。只有当应用程序第一次访问文件内容时,才能将其加载到本地驱动器中。文件夹列表可以在首次访问文件夹时完成
- 脱机文件支持。当服务器不可用时,可以锁定/取消锁定文件以保留在本地驱动器上
- 下载/上传进度报告
- 与Windows文件管理器集成。每个项目都显示脱机状态、固定/取消固定状态、同步状态和下载进度
- 向用户发送消息和错误通知,以及文件系统状态报告
- 隐藏数据是远程的事实。用户“认为”文件在本地文件系统中,没有任何状态信息。用户不知道文件内容是可用/不可用还是联机/脱机
- 。样本:
- 您可以自定义Windows文件管理器工具栏、快捷菜单、文件夹视图、树状视图和状态栏
- 您可以扩展Windows文件管理器层次结构,添加新的自定义节点,这些节点的外观和行为类似于文件和文件夹(剪切/复制/粘贴、拖放等),而无需在其背后构建功能性文件系统