我尝试使用此代码从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:///
我的问题是,如何使用ms-appx:///前缀在第一个URI处访问该文件?
现在代码在这一行失败了:
ArcGISTiledLayer tpkLayer = new ArcGISTiledLayer(tpkFileUri);
因为它表示URI不正确,所以对tpkLayer的引用为null。
答案 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