有没有办法打开文件资源管理器并从UWP应用程序中选择一个文件?

Mah*_*asi 6 c# windows-10 uwp

我可以使用Launcher.LaunchFolderAsync()(+)从UWP应用程序打开文件浏览器,但有没有办法在该文件浏览器窗口中选择文件?

一些方法可以在Win32应用程序中实现这一点,包括直接调用explorer.exe并将参数传递给它,这显然不适用于UWP.

lin*_*exi 9

您也可以使用Launcher.LaunchFolderAsync和使用第二个参数Folder?Launcher?Options.

Folder?Launcher?Options可以使您要选择使用的文件或文件夹ItemsToSelect.

ItemsToSelect 是一个只读属性,但您可以将项添加到现有列表中.

这是一个示例,使用文件夹FolderPicker然后选择所有文件:

第一个是获取文件夹:

        FolderPicker p = new FolderPicker();
        p.FileTypeFilter.Add(".txt");
        StorageFolder folder = await p.PickSingleFolderAsync();
Run Code Online (Sandbox Code Playgroud)

然后获取文件夹中的所有文件

   foreach (var temp in await folder.GetFilesAsync())
Run Code Online (Sandbox Code Playgroud)

我可以使用FolderLauncherOptions来添加我想要选择的项目.

        var t = new FolderLauncherOptions();
        foreach (var temp in await folder.GetFilesAsync())
        {
            t.ItemsToSelect.Add(temp);
        }
Run Code Online (Sandbox Code Playgroud)

然后打开文件资源管理器

      await Launcher.LaunchFolderAsync(folder, t);
Run Code Online (Sandbox Code Playgroud)

您可以看到在选择所有文件时将打开资源管理器.

您还可以向ItemsToSelect添加文件夹,它将被选中.

有关详细信息,请参阅此处:https://docs.microsoft.com/en-us/uwp/api/Windows.System.Launcher#Windows_System_Launcher_LaunchFolderAsync_Windows_Storage_IStorageFolder_Windows_System_FolderLauncherOptions_