共用方式為


使用 Windows App SDK 管理檔案、資料夾與函式庫

Windows App SDK 為封裝應用程式提供強大的檔案管理功能。 你可以使用 Windows.StorageWindows.Storage.StreamsMicrosoft.Windows.Storage.Pickers 命名空間的 API 來高效地讀寫檔案中的各種資料格式,並管理檔案和資料夾。

從 Windows 10 開始,Windows 桌面應用程式有各種與檔案、資料夾、函式庫及設定相關的 API。 這些功能可透過 Windows App SDK、Windows Runtime(WinRT)及 .NET API 組合使用,這些 API 由 Windows App SDKWindows SDK 以及 .NET SDK 提供。

使用 Windows App SDK 選擇器來讀寫資料

Windows App SDK 1.8 版及更新版本中提供 Picker API。 下列主題提供如何使用選擇器 API 讓使用者在應用程式中開啟和儲存檔案和資料夾的相關資訊:

主題 Description
在 WinUI 中使用選擇器開啟檔案和資料夾 使用 Windows App SDK 的檔案與資料夾選擇器,讓使用者在 WinUI 應用程式中瀏覽並選擇檔案或資料夾。 選擇器 API 提供熟悉的 Windows 體驗,幫助使用者瀏覽裝置與雲端 storage 位置。 學習如何讓使用者使用 FileOpenPickerFolderPicker 類別選擇檔案或資料夾開啟。
在 WinUI 在建置 WinUI 應用程式和其他 Windows 用戶端應用程式時,使用者通常需要將文件、圖像或其他內容等檔案儲存到裝置上的特定位置。 Windows App SDK提供 FileSavePicker 類別,建立一致且使用者友善的介面,讓使用者選擇儲存檔案的位置及命名。

WinRT 與 Windows App SDK 選擇器的主要差異

以下是 UWP 應用程式使用的 WinRT Windows.Storage.Pickers 的一些主要差異:

  • 不像現有的 Windows。Storage。Pickers API 回傳 StorageFileStorageFolder 物件,這個新 API 會回傳透過 PickFileResultPickFolderResult 類別的字串路徑。 這簡化了 API 並避開了在提升情況下存儲功能的複雜性。
  • 同樣地,FileSavePicker.SuggestedSaveFile屬性(回傳 StorageFile)也已被替換。 其功能現由兩個字串屬性涵蓋:SuggestedFolder 以及 SuggestedFileName。 這些允許您建議保存對話框的文件夾和文件名。
  • 所有新的選擇器都是專為傳統型應用程式所設計,並使用 WindowId 屬性將選擇器連結至其主機視窗,以取代 WinRT.Interop.InitializeWithWindow.Initialize 模式。
  • 新的選擇器讓開發者無需指定 FileTypeFilterFileTypeChoices 即可使用。 雖然 UWP 選擇器會在未設定這些屬性時擲回例外狀況,但當開發人員未明確設定這些屬性時,新的選擇器預設會顯示所有檔案。
  • HomeGroup 位置已從新的 PickerLocationId enum 中移除,因為自 Windows 10 年起不再支援。
  • FolderPicker.FileTypeFilter 已被排除,因為它在功能上不適合用於資料夾選擇。
  • 排除已標示為已棄用或「不使用」的方法和屬性。 例如, PickSingleFileAndContinueContinuationDataResumePickSingleFileAsync 等。
  • 排除多使用者模式的方法和屬性,因為新的 API 目前是針對桌面案例所設計,其中每個使用者都有自己的互動式會話,而且每個會話都完全獨立於裝置上的其他會話。 這與 Xbox 或其他多用戶設備形成鮮明對比。

使用 WinRT 儲存 API 存取資料

封裝應用程式可以存取所有 UWP 應用程式可用的 WinRT 儲存 API。 無論您是移轉現有的 UWP 應用程式還是建立新的應用程式,您都可以使用這些 API 來讀取和寫入資料。 關於在 WinUI 3 應用程式中使用儲存 API 的範例,請參見 使用 Windows App SDK 和 WinRT API 存取檔案與資料夾

使用 .NET 檔案 API 來存取資料

除了 WinRT API 外,打包桌面應用程式還可利用 System.IO 命名空間中的 .NET API 來讀寫資料。 當建立新的 WinUI project時,其 Package.appxmanifest 檔案包含以下設定:

<Capabilities>
  <rescap:Capability Name="runFullTrust" />
</Capabilities>

宣告此受限能力可提供對檔案系統、登錄檔及其他受限功能的完整access。 如需詳細資訊,請參閱 受限制的功能宣告。 換句話說,當使用 .NET 檔案 API 時,該應用程式與其他桌面.NET應用程式擁有相同的檔案系統access。

關於在 WinUI 應用程式中使用 .NET API 的範例,請參考包含 Windows App SDK 和 .NET API 的 Access 檔案與資料夾

用於處理檔案和資料夾的其他資源

如果你正在開發打包的 WinUI 應用程式,WinRT storage API 可以成為讀寫資料的強大工具。 下列 UWP 主題為想要在其應用程式中運用這些 API 的開發人員提供大量資訊。

主題 Description
列舉和查詢檔案和資料夾 存取檔案和資料夾,無論是在資料夾、函式庫、裝置或網路位置中。 您也可以透過建構檔案和資料夾查詢來查詢位置中的檔案和資料夾。
建立、寫入和讀取檔案 使用 StorageFile物件來讀寫檔案。
寫入檔案的最佳作法 學習各種檔案寫入方法的最佳實務,涵蓋 FileIOPathIO 類別。
取得檔案屬性 取得由 StorageFile 物件所代表的檔案的屬性——頂層、基本及擴充。
存取家庭群組內容 存取位於使用者的 HomeGroup 資料夾中的內容,包括圖片、音樂和影片。
判斷Microsoft OneDrive檔案的可用性 利用 StorageFile.IsAvailable 屬性判斷是否有 Microsoft OneDrive 檔案可用。
音樂、圖片和視訊資料庫中的檔案和資料夾 將現有的音樂、圖片或影片資料夾新增至對應的庫。 您還可以從庫中刪除文件夾、獲取庫中的文件夾列表以及發現存儲的照片、音樂和視頻。
追蹤最近使用的檔案和資料夾 將使用者經常存取的檔案新增至應用程式最近使用的清單 (MRU),以追蹤這些檔案。 該平台會根據上次存取項目的時間對項目進行排序,並在達到清單的 25 個項目限制時刪除最舊的項目,從而為您管理 MRU。 所有應用程式都有自己的 MRU。
在背景中追蹤檔案系統變更 追蹤檔案系統的變更,即使應用程式未執行也一樣。
存取 SD 卡 你可以在可選的 microSD 卡上儲存和存取非必要的資料,尤其是在低成本且內部儲存空間有限的行動裝置上。
快速存取檔案屬性 有效率地從函式庫收集檔案及其屬性清單,透過 Windows Runtime API 使用。

另請參閱

使用 Windows App SDK 和 WinRT API 存取檔案及資料夾

使用 Windows App SDK 和 .NET API 存取檔案與資料夾

System.IO