跳到主要内容
版本:11.0.0

StorageProvider

StorageProvider 是文件和文件夹管理的核心。它提供了用于选择文件和文件夹、检查平台功能以及与存储书签交互的方法。

StorageProvider 可以通过 TopLevelWindow 的实例访问,有关访问 TopLevel 的更多详细信息,请访问 TopLevel 页面:

var storage = window.StorageProvider;

属性

CanOpen

指示当前平台是否可以打开“打开文件选择器”。

bool CanOpen { get; }

CanSave

指示当前平台是否可以打开“保存文件选择器”。

bool CanSave { get; }

CanPickFolder

指示当前平台是否可以打开“文件夹选择器”。

bool CanPickFolder { get; }

方法

OpenFilePickerAsync

打开文件选择对话框。

Task<IReadOnlyList<IStorageFile>> OpenFilePickerAsync(FilePickerOpenOptions options);

该方法返回选择的 IStorageFile 实例数组,如果用户取消对话框,则返回空集合。

SaveFilePickerAsync

打开保存文件选择对话框。

Task<IStorageFile?> SaveFilePickerAsync(FilePickerSaveOptions options);

该方法返回保存的 IStorageFile 实例,如果用户取消对话框,则返回 null。

OpenFolderPickerAsync

打开文件夹选择对话框。

Task<IReadOnlyList<IStorageFolder>> OpenFolderPickerAsync(FolderPickerOpenOptions options);

该方法返回选择的 IStorageFolder 实例数组,如果用户取消对话框,则返回空集合。

OpenFileBookmarkAsync

通过书签 ID 打开 IStorageBookmarkFile

Task<IStorageBookmarkFile?> OpenFileBookmarkAsync(string bookmark);

该方法返回书签文件,如果操作系统拒绝请求,则返回 null。

OpenFolderBookmarkAsync

通过书签 ID 打开 IStorageBookmarkFolder

Task<IStorageBookmarkFolder?> OpenFolderBookmarkAsync(string bookmark);

该方法返回书签文件夹,如果操作系统拒绝请求,则返回 null。

TryGetFileFromPathAsync

尝试根据文件路径从文件系统中读取文件。

Task<IStorageFile?> TryGetFileFromPathAsync(Uri filePath);

该方法返回文件,如果文件不存在,则返回 null。filePath 参数预期是带有 "file" scheme 的绝对路径,但在 Android 上可以是带有 "content" scheme 的 URI。

TryGetFolderFromPathAsync

尝试根据文件夹路径从文件系统中读取文件夹。

Task<IStorageFolder?> TryGetFolderFromPathAsync(Uri folderPath);

该方法返回文件夹,如果文件夹不存在,则返回 null。folderPath 参数预期是带有 "file" scheme 的绝对路径,但在 Android 上可以是带有 "content" scheme 的 URI。

TryGetWellKnownFolderAsync

尝试根据知名文件夹标识符从文件系统中读取文件夹。

Task<IStorageFolder?> TryGetWellKnownFolderAsync(WellKnownFolder wellKnownFolder);

该方法返回文件夹,如果文件夹不存在,则返回 null。

扩展方法

TryGetFileFromPathAsync

尝试根据文件路径从文件系统中读取文件。

Task<IStorageFile?> TryGetFileFromPathAsync(this IStorageProvider provider, string filePath);

该方法将返回一个文件,如果文件不存在,则返回null。 此方法接受本地文件路径字符串作为参数,不带任何scheme。 仅在操作系统上受支持,使用物理文件路径,主要仅适用于桌面。

TryGetFolderFromPathAsync

尝试根据文件夹路径从文件系统中读取文件夹。

Task<IStorageFolder?> TryGetFolderFromPathAsync(this IStorageProvider provider, string folderPath);

该方法将返回一个文件夹,如果文件夹不存在,则返回null。 此方法接受本地文件夹路径字符串作为参数,不带任何scheme。 仅在操作系统上受支持,使用物理文件路径,主要仅适用于桌面。

平台兼容性:

功能托管代码WindowsmacOSLinux浏览器AndroidiOS
OpenFileBookmarkAsync✔*✔*✔*✔*
OpenFolderBookmarkAsync✔*✔*✔*✔*
OpenFilePickerAsync✔**
SaveFilePickerAsync✔**✔***
OpenFolderPickerAsync✔**✔***
TryGetFileFromPathAsync
TryGetFolderFromPathAsync
TryGetWellKnownFolderAsync

* 书签在桌面平台上不受支持,而是返回文件路径。计划支持 macOS,以便使其与受沙盒限制的 Apple Store 应用程序配合使用。

** 托管文件选择器仅在可以打开自定义窗口的桌面平台上工作。

*** 只有基于 Chromium 的浏览器对文件选择器有良好的支持。