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

7
我可以使用Launcher.LaunchFolderAsync()函数从UWP应用程序中打开文件浏览器(+),但是有没有办法在该文件浏览器窗口中选择一个文件?在Win32应用程序中,有一些方法可以通过直接调用explorer.exe并向其传递参数来实现此目标,但这显然对于UWP不起作用。在这里有一些实现此目标的方式。

启动一个URI。等待查找。 - lindexi
@lindexi 抱歉,我不确定你的意思。你能再解释一下吗? - Mahdi Ghiasi
我正在撰写答案,请等待我。 - lindexi
1个回答

10
你还可以使用Launcher.LaunchFolderAsync方法,并使用第二个参数Folder​Launcher​OptionsFolder​Launcher​Options可以通过ItemsToSelect属性选中要选择的文件或文件夹。 ItemsToSelect是只读属性,但您可以将项目添加到现有列表中。
以下是一个示例,使用FolderPicker获取文件夹,然后选择所有文件:
首先获取文件夹:
        FolderPicker p = new FolderPicker();
        p.FileTypeFilter.Add(".txt");
        StorageFolder folder = await p.PickSingleFolderAsync();

接下来获取文件夹中的所有文件。

   foreach (var temp in await folder.GetFilesAsync())

我可以使用FolderLauncherOptions来添加我想要选择的项目。
        var t = new FolderLauncherOptions();
        foreach (var temp in await folder.GetFilesAsync())
        {
            t.ItemsToSelect.Add(temp);
        }

然后打开文件资源管理器。
      await Launcher.LaunchFolderAsync(folder, t);

您选择所有文件时将打开资源管理器。
您还可以将文件夹添加到ItemsToSelect中,它也会被选中。
有关更多详细信息,请参见此处: https://learn.microsoft.com/en-us/uwp/api/Windows.System.Launcher#Windows_System_Launcher_LaunchFolderAsync_Windows_Storage_IStorageFolder_Windows_System_FolderLauncherOptions_

感谢您提供的FolderLauncherOptions以及您创建的示例。 - Mahdi Ghiasi
@Mahdi Ghiasi 这段代码可以在电脑上运行,但我不知道为什么无法在我的手机上运行。 - lindexi
奇怪,这在我的电脑和手机上都很好用。不过我正在使用创作者更新(版本号15063)。你正在用哪个版本? - Mahdi Ghiasi
@Mahdi Ghiasi,好的,拉基先生。我想我应该买一部新手机。 - lindexi
或者只需注册 Insider Fast 并获取创作者更新 :) - Mahdi Ghiasi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接