从默认查看器中的资源打开文档

时间:2013-11-20 15:15:15

标签: c# windows-8 resources windows-store-apps winrt-xaml

如何使用设备上安装的默认文档查看器打开应用程序重新包含的文档?

在Google中,我只找到了从文件系统打开文档的示例。

使用uri格式 ms-appx:///Assets/testPdf.pdf 执行Launcher.LaunchUriAsync(uri),请求安装应用程序以处理 ms-appx 输入资源

1 个答案:

答案 0 :(得分:0)

简单的问题。对不起这个复杂的答案。您的应用程序安装到/ Program Files / WindowsApps中,默认情况下具有各种安全设置。因此,当前用户无法通过具有提升权限的其他用户进行代理,无法访问该文件夹。此外,一旦打开,用户可能会想要编辑和保存,这也会违反应用程序安装文件夹的完整性。最后,它就是它 - 如果它100%有意义。

但你可以这样做:

async void MainPage_Loaded(object sender, RoutedEventArgs e)
{
    Windows.Storage.StorageFolder folder;
    Windows.Storage.StorageFile file;

    // FAIL: can't read from local package
    folder = Windows.ApplicationModel.Package.Current.InstalledLocation;
    folder = await folder.GetFolderAsync("Images");
    file = await folder.GetFileAsync("Picture.jpg");
    await Windows.System.Launcher.LaunchFileAsync(file);

    // SUCCESS: can read from local temp folder
    folder = Windows.Storage.ApplicationData.Current.TemporaryFolder;
    await file.MoveAsync(folder);
    await Windows.System.Launcher.LaunchFileAsync(file);
}

只需将其移至临时文件夹,该文件夹不受保护。

祝你好运!