Windows 應用程式 SDK 為封裝的應用程式提供強大的檔案管理功能。 您可以使用 Windows.Storage、 Windows.Storage.Streams 和 Microsoft.Windows.Storage.Pickers 命名空間中的 API,有效率地讀取和寫入檔案中的各種資料格式,以及管理檔案和資料夾。
從 Windows 10 開始,Windows 傳統型應用程式的檔案、資料夾、程式庫和設定有各種各樣的 API。 這些功能可透過 Windows 應用程式 SDK、Windows 執行階段 (WinRT) 和 Windows 應用程式 SDK、 Windows SDK 和 .NET SDK 所提供的 .NET API 的組合來取得。
使用 Windows 應用程式 SDK 選擇器讀取和寫入資料
Windows 應用程式 SDK 1.8 版和更新版本中提供選擇器 API。 下列主題提供如何使用選擇器 API 讓使用者在應用程式中開啟和儲存檔案和資料夾的相關資訊:
| 主題 | Description |
|---|---|
| 在 WinUI 中使用選擇器開啟檔案和資料夾 | 使用 Windows 應用程式 SDK 檔案和資料夾選擇器,讓使用者瀏覽和選取 WinUI 應用程式中的檔案或資料夾。 選擇器 API 提供熟悉的 Windows 體驗,可協助使用者瀏覽其裝置和雲端儲存體位置。 瞭解如何讓使用者選取要使用 FileOpenPicker 和 FolderPicker 類別開啟的檔案或資料夾。 |
| 在 WinUI 中使用 Windows 應用程式 SDK 選擇器儲存檔案 | 在建置 WinUI 應用程式和其他 Windows 用戶端應用程式時,使用者通常需要將文件、圖像或其他內容等檔案儲存到裝置上的特定位置。 Windows 應用程式 SDK 提供 FileSavePicker 類別來建立一致、使用者易記的介面,讓使用者選擇儲存檔案的位置,以及要命名檔案的內容。 |
WinRT 與 Windows 應用程式 SDK 選擇器之間的主要差異
以下是與 UWP 應用程式所使用的 WinRT Windows.Storage.Pickers 的一些主要差異:
- 與傳回 StorageFile 和 StorageFolder 物件的現有 Windows.Storage.Pickers API 不同,這個新的 API 會透過 PickFileResult 和 PickFolderResult 類別傳回字串型路徑。 這簡化了 API,並避免了在高權限場景中儲存功能的複雜處理。
- 同樣地,FileSavePicker.SuggestedSaveFile 屬性 (其返回一個 StorageFile) 已經被取代。 其功能現在由兩個字串屬性涵蓋: SuggestedFolder 和 SuggestedFileName。 這些允許您建議保存對話框的文件夾和文件名。
- 所有新的選擇器都是專為傳統型應用程式所設計,並使用 WindowId 屬性將選擇器連結至其主機視窗,以取代
WinRT.Interop.InitializeWithWindow.Initialize模式。 - 新的選擇器可讓開發人員使用它們,而不需要指定 FileTypeFilter 或 FileTypeChoices 。 雖然 UWP 選擇器會在未設定這些屬性時擲回例外狀況,但當開發人員未明確設定這些屬性時,新的選擇器預設會顯示所有檔案。
- 家庭組位置已從新的 PickerLocationId 列舉中排除,因為從 Windows 10 開始不再支援該功能。
- FolderPicker.FileTypeFilter 已排除在外,因為它在功能上不適合資料夾選取。
- 排除已標示為已棄用或「不使用」的方法和屬性。 例如, PickSingleFileAndContinue、 ContinuationData、 ResumePickSingleFileAsync 等。
- 排除多使用者模式的方法和屬性,因為新的 API 目前是針對桌面案例所設計,其中每個使用者都有自己的互動式會話,而且每個會話都完全獨立於裝置上的其他會話。 這與 Xbox 或其他多用戶設備形成鮮明對比。
使用 WinRT 儲存體 API 存取資料
封裝的應用程式可以存取 UWP 應用程式可用的所有 WinRT 儲存體 API。 無論您是移轉現有的 UWP 應用程式還是建立新的應用程式,您都可以使用這些 API 來讀取和寫入資料。 如需在 WinUI 應用程式中使用儲存體 API 的範例,請參閱 使用 Windows 應用程式 SDK 和 WinRT API 存取檔案和資料夾。
使用 .NET 檔案 API 進行資料存取
除了 WinRT API 之外,封裝的傳統型應用程式還可以使用 System.IO 命名空間中的 .NET API 來讀取和寫入資料。 建立新的 WinUI 3 專案時,其 Package.appxmanifest 檔案會包含下列設定:
<Capabilities>
<rescap:Capability Name="runFullTrust" />
</Capabilities>
宣告此受限制功能可提供檔案系統、登錄和其他受限制功能的完整存取權。 如需詳細資訊,請參閱 受限制的功能宣告。 換句話說,使用 .NET 檔案 API 時,應用程式對檔案系統的存取權與任何其他 .NET 傳統型應用程式相同。
如需在 WinUI 應用程式中使用 .NET API 的範例,請參閱 使用 Windows 應用程式 SDK 和 .NET API 存取檔案和資料夾。
用於處理檔案和資料夾的其他資源
如果您要開發已封裝的 WinUI 應用程式,WinRT 儲存體 API 可以是讀取和寫入資料的強大工具。 下列 UWP 主題為想要在其應用程式中運用這些 API 的開發人員提供大量資訊。
| 主題 | Description |
|---|---|
| 列舉和查詢檔案和資料夾 | 您可以在資料夾、文件庫、裝置或網路位置中存取檔案和資料夾。 您也可以透過建構檔案和資料夾查詢來查詢位置中的檔案和資料夾。 |
| 建立、寫入和讀取檔案 | 使用 StorageFile 物件讀取和寫入檔案。 |
| 寫入檔案的最佳作法 | 瞭解使用 FileIO 和 PathIO 類別的各種檔案寫入方法的最佳做法。 |
| 取得檔案屬性 | 取得 StorageFile 物件所代表之檔案的屬性 (最上層、基本和擴充)。 |
| 存取家庭群組內容 | 存取儲存在使用者 [家群組] 資料夾中的內容,包括圖片、音樂和視訊。 |
| 判斷 Microsoft OneDrive 檔案的可用性 | 使用 StorageFile.IsAvailable 屬性來判斷 Microsoft OneDrive 檔案是否可用。 |
| 音樂、圖片和視訊資料庫中的檔案和資料夾 | 將現有的音樂、圖片或影片資料夾新增至對應的庫。 您還可以從庫中刪除文件夾、獲取庫中的文件夾列表以及發現存儲的照片、音樂和視頻。 |
| 追蹤最近使用的檔案和資料夾 | 將使用者經常存取的檔案新增至應用程式最近使用的清單 (MRU),以追蹤這些檔案。 該平台會根據上次存取項目的時間對項目進行排序,並在達到清單的 25 個項目限制時刪除最舊的項目,從而為您管理 MRU。 所有應用程式都有自己的 MRU。 |
| 在背景中追蹤檔案系統變更 | 追蹤檔案系統的變更,即使應用程式未執行也一樣。 |
| 存取 SD 卡 | 您可以在可選的 microSD 卡上存儲和訪問非必要數據,尤其是在內部存儲有限的低成本移動設備上。 |
| 快速存取檔案屬性 | 有效率地從程式庫收集檔案及其屬性清單,以透過 Windows 執行階段 API 使用。 |
另請參閱
使用 Windows App SDK 和 WinRT API 存取檔案和資料夾