您可以在UWP中使用来自库(PicturesLibrary)的URI吗?

时间:2017-02-08 16:41:11

标签: c# uwp win-universal-app

我尝试使用此代码从PicturesLibrary访问文件的URI:

    StorageFolder picturesFolder = KnownFolders.PicturesLibrary;

    StorageFile tpkFile = await picturesFolder.GetFileAsync("campus.tpk");

    Uri tpkFileUri = new Uri(tpkFile.Path);

    Debug.WriteLine("This is the tpkFile path: " + tpkFileUri);

    ArcGISTiledLayer tpkLayer = new ArcGISTiledLayer(tpkFileUri);
    try
    {
        MyMapView.Map.OperationalLayers.Add(tpkLayer);
    }
    catch(Exception e)
    {
        Debug.WriteLine("This is the Exception: " + e);
    }

返回URI:

file:///C:/Users/username/Pictures/campus.tpk

但我知道UWP应用只会采用以ms-appx:///

开头的URI

我的问题是,如何使用ms-appx:///前缀在第一个URI处访问该文件?

现在代码在这一行失败了:

ArcGISTiledLayer tpkLayer = new ArcGISTiledLayer(tpkFileUri);

因为它表示URI不正确,所以对tpkLayer的引用为null。

1 个答案:

答案 0 :(得分:1)

将其复制到ApplicationData.Current并使用ms-appdata:///会对你有用吗? ms-appx:///引用appx中只读的文件。

在这里,您可以阅读有关ms-appdata架构的更多信息:https://blogs.windows.com/buildingapps/2014/06/19/common-questions-and-answers-about-files-and-app-data-part-1-app-data/#j4m8ylp93K7ujk6Q.97