共用方式為


使用 Windows 應用程式 SDK 管理檔案、資料夾和文件庫

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

從 Windows 10 開始,Windows 傳統型應用程式的檔案、資料夾、程式庫和設定有各種各樣的 API。 這些功能可透過 Windows 應用程式 SDK、Windows 執行階段 (WinRT) 和 Windows 應用程式 SDKWindows SDK.NET SDK 所提供的 .NET API 的組合來取得。

使用 Windows 應用程式 SDK 選擇器讀取和寫入資料

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

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

WinRT 與 Windows 應用程式 SDK 選擇器之間的主要差異

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

  • 與傳回 StorageFileStorageFolder 物件的現有 Windows.Storage.Pickers API 不同,這個新的 API 會透過 PickFileResultPickFolderResult 類別傳回字串型路徑。 這簡化了 API,並避免了在高權限場景中儲存功能的複雜處理。
  • 同樣地,FileSavePicker.SuggestedSaveFile 屬性 (其返回一個 StorageFile) 已經被取代。 其功能現在由兩個字串屬性涵蓋: SuggestedFolderSuggestedFileName。 這些允許您建議保存對話框的文件夾和文件名。
  • 所有新的選擇器都是專為傳統型應用程式所設計,並使用 WindowId 屬性將選擇器連結至其主機視窗,以取代 WinRT.Interop.InitializeWithWindow.Initialize 模式。
  • 新的選擇器可讓開發人員使用它們,而不需要指定 FileTypeFilterFileTypeChoices 。 雖然 UWP 選擇器會在未設定這些屬性時擲回例外狀況,但當開發人員未明確設定這些屬性時,新的選擇器預設會顯示所有檔案。
  • 家庭組位置已從新的 PickerLocationId 列舉中排除,因為從 Windows 10 開始不再支援該功能。
  • FolderPicker.FileTypeFilter 已排除在外,因為它在功能上不適合資料夾選取。
  • 排除已標示為已棄用或「不使用」的方法和屬性。 例如, PickSingleFileAndContinueContinuationDataResumePickSingleFileAsync 等。
  • 排除多使用者模式的方法和屬性,因為新的 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 物件讀取和寫入檔案。
寫入檔案的最佳作法 瞭解使用 FileIOPathIO 類別的各種檔案寫入方法的最佳做法。
取得檔案屬性 取得 StorageFile 物件所代表之檔案的屬性 (最上層、基本和擴充)。
存取家庭群組內容 存取儲存在使用者 [家群組] 資料夾中的內容,包括圖片、音樂和視訊。
判斷 Microsoft OneDrive 檔案的可用性 使用 StorageFile.IsAvailable 屬性來判斷 Microsoft OneDrive 檔案是否可用。
音樂、圖片和視訊資料庫中的檔案和資料夾 將現有的音樂、圖片或影片資料夾新增至對應的庫。 您還可以從庫中刪除文件夾、獲取庫中的文件夾列表以及發現存儲的照片、音樂和視頻。
追蹤最近使用的檔案和資料夾 將使用者經常存取的檔案新增至應用程式最近使用的清單 (MRU),以追蹤這些檔案。 該平台會根據上次存取項目的時間對項目進行排序,並在達到清單的 25 個項目限制時刪除最舊的項目,從而為您管理 MRU。 所有應用程式都有自己的 MRU。
在背景中追蹤檔案系統變更 追蹤檔案系統的變更,即使應用程式未執行也一樣。
存取 SD 卡 您可以在可選的 microSD 卡上存儲和訪問非必要數據,尤其是在內部存儲有限的低成本移動設備上。
快速存取檔案屬性 有效率地從程式庫收集檔案及其屬性清單,以透過 Windows 執行階段 API 使用。

另請參閱

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

使用 Windows 應用程式 SDK 和 .NET API 存取檔案和資料夾

System.IO