Ответ 1
В самом деле, песочница имеет множество ограничений в том, где вы можете читать/писать. Вот несколько типичных мест:
Если вы пытаетесь загрузить ресурсы из своей папки установки приложения, вы можете использовать следующее:
-
StorageFolder installFolder = Windows.ApplicationModel.Package.Current.InstalledLocation
-
StorageFile file = await StorageFile.GetFileFromApplicationUriAsync("ms-appx:///file.txt");
(Это папка только для чтения, поэтому вы не можете редактировать или создавать новые файлы.)
Если вы пытаетесь записать файлы данных в папку данных приложения, вы можете использовать следующее:
-
StorageFolder localFolder = ApplicationData.Current.LocalFolder;
-
StorageFile file = await StorageFile.GetFileFromApplicationUriAsync("ms-appdata:///local/file.txt");
(Эта папка предназначена для чтения и записи. Вы также можете получить доступ к роумингу или временным папкам, изменив локальный на один из двух других. )
Существуют и другие папки, такие как DownloadsFolder
, хотя вы можете получить доступ только к файлам, загружаемым вашим приложением.
В качестве альтернативы вы всегда можете запросить у пользователя разрешение с FileOpenPicker
и FileSavePicker
. Сборщики не разрешают доступ к пути InstalledLocation
, но позволят вам получить доступ к Documents
, Pictures
и Downloads
(даже если ваше приложение не загрузило файл).