用文件uri启动程序

时间:2016-07-27 02:37:34

标签: c# uri uwp

我正在关注本教程: http://blog.pieeatingninjas.be/2016/02/06/displaying-pdf-files-in-a-uwp-app/ 此代码不适用于uwp应用程序:

Windows.System.LauncherOptions options = newWindows.System.LauncherOptions();
options.ContentType = "application/pdf";
string fileUrl = "file:///C:/Users/Name/Documents/FileName.pdf";
await Windows.System.Launcher.LaunchUriAsync(new Uri(fileUrl), options);

谢谢。

2 个答案:

答案 0 :(得分:1)

我们无法通过指定此类文件路径来使用Launcher.LaunchUriAsync(Uri) method来启动PDF文件。

来自Remarks的参考:

  

您无法使用此方法在本地区域中启动URI。例如,应用无法使用 file:/// 协议访问本地计算机上的文件。相反,您必须使用Storage APIs来访问文件。

因此,在使用您的代码时,LaunchUriAsync方法将始终返回false,但它无法正常工作。

要在UWP应用中启动文件,我们可以使用Launcher.LaunchFileAsync methods

首先,我们需要为该文件获取一个Windows.Storage.StorageFile对象。 Documents文件夹是一个特殊文件夹,我们可以在应用清单中添加documentsLibrary功能,然后使用KnownFolders.DocumentsLibrary获取PDF文件。或使用FileOpenPicker获取文件。有关详细信息,请参阅File access permissionsOpen files and folders with a picker

获取文件对象后,我们可以使用几个不同的选项启动该文件。有关详细信息,请参阅Launch the default app for a file

答案 1 :(得分:0)

这是我的做法:

  1. 将PDF文件添加到Assets文件夹,并将其“构建操作”设置为“内容”。
  2. 下面的代码用于显示默认应用程序的PDF文件。

       StorageFile file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(@"Assets\MyDoc.pdf");
       var result = await Launcher.LaunchFileAsync(file);