[英]C#: Create a virtual drive in Computer
有沒有辦法在“(我的)電腦”中創建一個虛擬驅動器並對其進行操作,就像 JungleDisk 那樣?
它可能會執行以下操作:
override OnRead(object sender, Event e) {
ShowFilesFromAmazon();
}
是否有任何 API:s 用於此? 也許寫入 XML 文件或數據庫,而不是真正的驅動器。
Dokan 庫似乎是最符合我的問題的答案,盡管System.IO.IsolatedStorage似乎是最標准化和最適應 Microsoft 環境的。
根據您希望構建的虛擬驅動器類型,這里有一些最近在 Windows、macOS 和 iOS 中引入的新 OS API。
下面的一些 API 可用作 Windows 上的托管 .NET 代碼,但許多是本機 Windows / macOS / iOS API。 盡管如此,我還是能夠在 .NET 和 Xamarin 應用程序中使用以下許多 API,並使用 C# 為 Windows、macOS 和 iOS 構建整個虛擬驅動器。
在 Windows 上。 Windows 10 提供了雲同步引擎 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 的主要區別在於它隱藏了它是遠程存儲的事實。 它不提供文件狀態、下載進度等的任何指示。 文檔說它旨在以文件系統的形式“投影”分層數據。
您可以使用Dokan 庫來創建虛擬驅動器。 有一個用於與 C# 交互的 .Net 包裝器。
是的,使用System.IO.IsolatedStorage 中的類
我的電腦的內容可以包括 Shell 命名空間擴展。 這些 COM 對象在主 Explorer 進程內運行,許多其他 shell 擴展也是如此。 將 C# 用於此類擴展是一個壞主意,因為您的擴展無法控制 Explorer.exe 可以使用哪個 CLR 版本。 並且 Microsoft 只允許每個進程使用一個 CLR。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.