有没有办法在“(我的)计算机”中创建虚拟驱动器并对其进行操作,有点像JungleDisk吗?
它可能会像:
override OnRead(object sender, Event e) {
ShowFilesFromAmazon();
}
有没有API:s为此?也许写入XML文件或数据库,而不是真正的驱动器。
尽管Dokan Library似乎是最标准化且最适合微软环境的,但System.IO.IsolatedStorage似乎是与我的问题大致对应的答案。
答案 0 :(得分:20)
您可以使用Dokan library创建虚拟驱动器。有一个.Net包装器可以与C#连接。
答案 1 :(得分:12)
根据您希望构建的虚拟驱动器类型,这里有一些最近在 Windows、macOS 和 iOS 中引入的新 OS API。
下面的一些 API 可作为 Windows 上的托管 .NET 代码使用,但许多是本机 Windows / macOS / iOS API。尽管如此,我还是能够在 .NET 和 Xamarin 应用程序中使用以下许多 API,并使用 C# 为 Windows、macOS 和 iOS 构建整个虚拟驱动器。
在 Windows 上。Windows 10 提供 Cloud Sync Engine API 用于创建从远程位置发布数据的虚拟驱动器。它也被称为“云过滤器 API”名称或“Windows 云提供商”。以下是其主要功能:
在 macOS 和 iOS 上。MacOS Big Sur 和 iOS 11+ 提供了类似的 API,称为 File Provider API。它的功能类似于 Windows API 提供的功能:
我目前不确定文件/文件夹是否可以在 macOS Finder 中显示自定义列并存储任何元数据。
在 Windows 上。Windows 提供 ProjFS API。它与 Cloud Sync Engine API 和 macOS/iOS File Provider API 的主要区别在于它隐藏了它是远程存储的事实。它不提供文件状态、下载进度等的任何指示。文档说它旨在以文件系统的形式“投影”分层数据。
答案 2 :(得分:6)
答案 3 :(得分:2)
“我的电脑”的内容可以包括Shell命名空间扩展。这些COM对象在主Explorer进程内运行,许多其他shell扩展也是如此。使用C#进行此类扩展是一个坏主意,因为您的扩展无法控制Explorer.exe可以使用的CLR版本。微软每个进程只允许一个CLR。