Windows 应用 SDK 文件、文件夹和库

打包的 Windows 应用 SDK 应用可以利用 Windows.StorageWindows.Storage.StreamsWindows.Storage.Pickers 命名空间提供的强大 API,在文件中有效地读取和写入各种数据格式以及管理文件和文件夹。 本部分介绍基本主题,例如读取和写入应用设置、文件和文件夹选取器,以及访问特殊沙盒式位置(例如视频/音乐库)。 了解如何使用 Windows 应用 SDK 优化应用的文件管理功能。

Windows 10 及更高版本的 OS 提供各种与应用的文件、文件夹、库和设置相关的 API。 这些功能可通过 Windows SDK.NET SDK 提供的 WinRT 和 .NET API 的组合来实现。

使用 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 的示例,请参阅使用 Windows 应用 SDK 和 .NET API 访问文件和文件夹

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

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

主题 说明
枚举和查询文件和文件夹 访问位于文件夹、库、设备或网络位置的文件和文件夹。 还可以通过构造文件和文件夹查询来查询某个位置的文件和文件夹。
创建、写入和读取文件 使用 StorageFile 对象读取和写入文件。
向文件进行写入的最佳做法 了解使用 FileIOPathIO 类的各种文件写入方法的最佳做法。
获取文件属性 获取由 StorageFile 对象表示的文件的属性:顶级、基本和扩展属性。
使用选取器打开文件和文件夹 通过让用户与选取器交互来访问文件和文件夹。 你可以使用 FolderPicker 来获取对文件夹的访问权限。

注意:在桌面应用(包括 WinUI 3 应用)中,可以使用 Windows.Storage.Pickers 中的文件和文件夹选取器。 但是,如果桌面应用需要提升才能运行,则需要不同的方法,因为这些 API 不是为在提升的应用中使用而设计。 有关示例,请参阅FileSavePicker
使用选取器保存文件 使用 FileSavePicker 让用户指定名称和他们想让应用保存文件的位置。
访问家庭组内容 访问存储在用户的“家庭组”文件夹中的内容,包括图片、音乐和视频。
确定 Microsoft OneDrive 文件的可用性 使用 StorageFile.IsAvailable 属性确定 Microsoft OneDrive 文件是否可用。
音乐、图片和视频库中的文件和文件夹 将现有的音乐、图片和视频文件夹添加到相应的库。 你还可以从库中删除文件夹、获取库中的文件夹列表,并发现存储的照片、音乐和视频。
跟踪最近使用的文件和文件夹 通过将用户经常访问的文件添加到你的应用的最近使用列表 (MRU) 中来跟踪这些文件。 该平台会为你管理 MRU,它会根据各个项的上次访问时间对它们进行排序,并在列表中的项超过 25 个的限制时删除最旧的项。 所有应用都有其各自的 MRU。
在后台跟踪文件系统更改 跟踪对文件系统的更改,即使应用未运行。
访问 SD 卡 你可以在可选 MicroSD 卡上存储和访问不重要的数据,尤其是内部存储具有限制的低成本移动设备。
快速访问文件属性 高效地从库中收集文件及其属性的列表以用于 Windows 运行时 API。

请参阅

使用 Windows 应用 SDK 和 WinRT API 访问文件和文件夹

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

System.IO