通过


使用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 组合使用,后者由 Windows App SDKWindows SDK.NET SDK 提供。

使用Windows App SDK选取器读取和写入数据

Windows App SDK版本 1.8 及更高版本中提供了选取器 API。 以下主题提供有关使用选取器 API 让用户在应用中打开和保存文件和文件夹的信息:

主题 Description
在 WinUI 中使用选取器打开文件和文件夹 使用Windows App SDK文件和文件夹选取器,让用户在 WinUI 应用中浏览和选择文件或文件夹。 选取器应用程序接口提供熟悉的 Windows 体验,帮助用户导航其设备和云存储位置。 了解如何让用户选择使用 FileOpenPickerFolderPicker 类打开的文件或文件夹。
在 WinUI 中使用Windows App SDK选取器保存文件 生成 WinUI 应用和其他 Windows 客户端应用时,用户通常需要将文档、图像或其他内容等文件保存到其设备上的特定位置。 Windows App SDK提供 FileSavePicker 类,以创建一致的用户友好界面,允许用户选择文件保存位置以及命名文件的名称。

WinRT 和 Windows App SDK 选取器之间的主要区别

WinRT Windows.Storage.Pickers 与 UWP 应用使用的一些关键区别如下:

  • 现有的 Windows.Storage.Pickers API 返回 StorageFileStorageFolder 对象,而此新的 API 通过 PickFileResultPickFolderResult 类返回基于字符串的路径。 在更复杂的场景中,这简化了 API,并避免了存储功能的复杂性问题。
  • 同样,已替换 FileSavePicker.SuggestedSaveFile 属性(返回 StorageFile)。 其功能现在由两个字符串属性覆盖:SuggestedFolderSuggestedFileName。 通过这些选项,可以建议保存对话框的文件夹和文件名。
  • 所有新的选取器专为桌面应用设计,并使用 WindowId 属性将选取器链接到其主机窗口,替换模式 WinRT.Interop.InitializeWithWindow.Initialize
  • 新的选取器允许开发人员使用它们,而无需指定 FileTypeFilterFileTypeChoices。 当未设置这些属性时,UWP 选取器会引发异常,但当开发人员未显式配置这些属性时,新选取器默认显示所有文件。
  • HomeGroup 位置已从新的 PickerLocationId 枚举中排除,因为从 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>

声明此受限能力将提供对文件系统、注册表和其他受限能力的完整访问权限。 有关详细信息,请参阅 受限功能声明。 也就是说,使用 .NET 的文件 API 时,该应用程序具有与其他任何 .NET 桌面应用程序相同的文件系统访问权限。

有关在 WinUI 应用中使用 .NET API 的示例,请参阅使用 Windows App SDK 和 .NET API 访问文件和文件夹

用于处理文件和文件夹的其他资源

如果要开发打包的 WinUI 应用,WinRT storage API 可能是用于读取和写入数据的强大工具。 以下 UWP 主题为希望在其应用中利用这些 API 的开发人员提供了大量信息。

主题 Description
枚举和查询文件和文件夹 访问位于文件夹、库、设备或网络位置中的文件和文件夹。 还可以通过构造文件和文件夹查询来查询位置中的文件和文件夹。
创建、写入和读取文件 使用 StorageFile 对象读取和写入文件。
写入文件的最佳做法 了解使用 FileIOPathIO 类的各种文件写入方法的最佳做法。
获取文件属性 获取由 StorageFile 对象表示的文件的属性(顶级、基本和扩展)。
访问家庭组内容 访问存储在用户家庭网络组文件夹中的内容,包括图片、音乐和视频。
确定Microsoft OneDrive文件的可用性 使用 StorageFile.IsAvailable 属性确定Microsoft OneDrive文件是否可用。
音乐、图片和视频库中的文件和文件夹 将音乐、图片或视频的现有文件夹添加到相应的库。 还可以从库中删除文件夹、获取库中的文件夹列表,以及发现存储的照片、音乐和视频。
跟踪最近使用的文件和文件夹 通过将文件添加到应用最近使用的列表(MRU),跟踪用户经常访问的文件。 该平台根据上次访问项的时间对项目进行排序,并在达到列表的 25 项限制时删除最旧的项,从而为你管理 MRU。 所有应用都有自己的 MRU。
在后台跟踪文件系统更改 跟踪对文件系统的更改,即使应用未运行也是如此。
访问SD卡 可以在可选的 microSD 卡上存储和访问非必要数据,尤其是在内部存储有限的低成本移动设备上。
快速访问文件属性 从库中有效地收集文件及其属性列表,以便通过Windows Runtime API 使用。

另请参阅

使用 Windows App SDK 和 WinRT API< c0>访问文件和文件夹

使用 Windows App SDK 和 .NET API 访问文件和文件夹

System.IO