2017-02-08 3 views
0

Я пытаюсь использовать этот код, чтобы получить доступ к URI к файлу из PicturesLibrary:Можете ли вы использовать URI из библиотеки (PicturesLibrary) в UWP?

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 приложений принимать только идентификаторы URI, которые начинаются с ms-appx:///

Мой вопрос в том, как я могу получить доступ к файлу в первом URI с префиксом ms-appx: ///?

Сейчас код не в этой строке:

ArcGISTiledLayer tpkLayer = new ArcGISTiledLayer(tpkFileUri); 

Потому что он говорит, что URI не является правильным, поэтому ссылка на tpkLayer равна нулю.

ответ

1

Скопируйте его в свой ApplicationData.Current и используйте ms-appdata: /// это сработает для вас? ms-appx: /// ссылается на файлы в вашем приложении, которое является только для чтения.

здесь вы можете прочитать больше о мс-AppData схеме: https://blogs.windows.com/buildingapps/2014/06/19/common-questions-and-answers-about-files-and-app-data-part-1-app-data/#j4m8ylp93K7ujk6Q.97

+0

не существует никакого другого пути, чем при копировании из библиотеки в папку/Assets AppX? – UndefinedReference

+0

не из библиотеки изображений; –

+0

Эй, Дэйв, большое спасибо за ответ так быстро. Чтобы уточнить, есть ли другая библиотека или местоположение за пределами папки приложений, которая будет работать? Возможно, другая библиотека? – UndefinedReference