Windows App SDK 為封裝應用程式提供強大的檔案管理功能。 你可以使用 Windows.Storage、Windows.Storage.Streams 和 Microsoft.Windows.Storage.Pickers 命名空間的 API 來高效地讀寫檔案中的各種資料格式,並管理檔案和資料夾。
從 Windows 10 開始,Windows 桌面應用程式有各種與檔案、資料夾、函式庫及設定相關的 API。 這些功能可透過 Windows App SDK、Windows Runtime(WinRT)及 .NET API 組合使用,這些 API 由
使用 Windows App SDK 選擇器來讀寫資料
Windows App SDK 1.8 版及更新版本中提供 Picker API。 下列主題提供如何使用選擇器 API 讓使用者在應用程式中開啟和儲存檔案和資料夾的相關資訊:
| 主題 | Description |
|---|---|
| 在 WinUI 中使用選擇器開啟檔案和資料夾 | 使用 Windows App SDK 的檔案與資料夾選擇器,讓使用者在 WinUI 應用程式中瀏覽並選擇檔案或資料夾。 選擇器 API 提供熟悉的 Windows 體驗,幫助使用者瀏覽裝置與雲端 storage 位置。 學習如何讓使用者使用 FileOpenPicker 和 FolderPicker 類別選擇檔案或資料夾開啟。 |
| 在建置 WinUI 應用程式和其他 Windows 用戶端應用程式時,使用者通常需要將文件、圖像或其他內容等檔案儲存到裝置上的特定位置。 Windows App SDK提供 FileSavePicker 類別,建立一致且使用者友善的介面,讓使用者選擇儲存檔案的位置及命名。 |
WinRT 與 Windows App SDK 選擇器的主要差異
以下是 UWP 應用程式使用的 WinRT Windows.Storage.Pickers 的一些主要差異:
- 不像現有的 Windows。Storage。Pickers API 回傳 StorageFile 和 StorageFolder 物件,這個新 API 會回傳透過 PickFileResult 和 PickFolderResult 類別的字串路徑。 這簡化了 API 並避開了在提升情況下存儲功能的複雜性。
- 同樣地,FileSavePicker.SuggestedSaveFile屬性(回傳 StorageFile)也已被替換。 其功能現由兩個字串屬性涵蓋:SuggestedFolder 以及 SuggestedFileName。 這些允許您建議保存對話框的文件夾和文件名。
- 所有新的選擇器都是專為傳統型應用程式所設計,並使用 WindowId 屬性將選擇器連結至其主機視窗,以取代
WinRT.Interop.InitializeWithWindow.Initialize模式。 - 新的選擇器讓開發者無需指定 FileTypeFilter 或 FileTypeChoices 即可使用。 雖然 UWP 選擇器會在未設定這些屬性時擲回例外狀況,但當開發人員未明確設定這些屬性時,新的選擇器預設會顯示所有檔案。
HomeGroup 位置已從新的PickerLocationId enum 中移除,因為自 Windows 10 年起不再支援。 - FolderPicker.FileTypeFilter 已被排除,因為它在功能上不適合用於資料夾選擇。
- 排除已標示為已棄用或「不使用」的方法和屬性。 例如, PickSingleFileAndContinue、 ContinuationData、 ResumePickSingleFileAsync 等。
- 排除多使用者模式的方法和屬性,因為新的 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物件來讀寫檔案。 |
| 寫入檔案的最佳作法 | 學習各種檔案寫入方法的最佳實務,涵蓋 FileIO 和 PathIO 類別。 |
| 取得檔案屬性 | 取得由 StorageFile 物件所代表的檔案的屬性——頂層、基本及擴充。 |
| 存取家庭群組內容 | 存取位於使用者的 HomeGroup 資料夾中的內容,包括圖片、音樂和影片。 |
| 判斷Microsoft OneDrive檔案的可用性 | 利用 StorageFile.IsAvailable 屬性判斷是否有 Microsoft OneDrive 檔案可用。 |
| 音樂、圖片和視訊資料庫中的檔案和資料夾 | 將現有的音樂、圖片或影片資料夾新增至對應的庫。 您還可以從庫中刪除文件夾、獲取庫中的文件夾列表以及發現存儲的照片、音樂和視頻。 |
| 追蹤最近使用的檔案和資料夾 | 將使用者經常存取的檔案新增至應用程式最近使用的清單 (MRU),以追蹤這些檔案。 該平台會根據上次存取項目的時間對項目進行排序,並在達到清單的 25 個項目限制時刪除最舊的項目,從而為您管理 MRU。 所有應用程式都有自己的 MRU。 |
| 在背景中追蹤檔案系統變更 | 追蹤檔案系統的變更,即使應用程式未執行也一樣。 |
| 存取 SD 卡 | 你可以在可選的 microSD 卡上儲存和存取非必要的資料,尤其是在低成本且內部儲存空間有限的行動裝置上。 |
| 快速存取檔案屬性 | 有效率地從函式庫收集檔案及其屬性清單,透過 Windows Runtime API 使用。 |
另請參閱
使用 Windows App SDK 和 WinRT API 存取檔案及資料夾