Windows 应用 SDK 文件、文件夹和库
打包的 Windows 应用 SDK 应用可以利用 Windows.Storage、Windows.Storage.Streams 和 Windows.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 对象读取和写入文件。 |
向文件进行写入的最佳做法 | 了解使用 FileIO 和 PathIO 类的各种文件写入方法的最佳做法。 |
获取文件属性 | 获取由 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 访问文件和文件夹