1

Я создал проект PCL в Xamarin, и я пытаюсь сохранить файлы с кросс-платформенным решением с помощью PCLstorage. Это мой код (из примера в PCLstorage website)Невозможно найти путь PCLstorage в Android

IFolder rootFolder = FileSystem.Current.LocalStorage; 
IFolder folder = await rootFolder.CreateFolderAsync("FolderName", CreationCollisionOption.OpenIfExists); 
IFile file = await folder.CreateFileAsync("filename.txt", CreationCollisionOption.ReplaceExisting); 
await file.WriteAllTextAsync("text"); 

Теперь, я хочу знать, где этот файл будет сохранен. В Windows Phone, используя инструменты WP power, я могу исследовать изолированное хранилище моего приложения, и я нахожу и открываю txt-файл. Хотя в Android я не могу найти созданную папку! Путь будет «данные/данные/com.appname.test/файлы/но я не нахожу!

Кто-то может мне помочь?

ответ

2

Вы сможете получить доступ к этой папке только из (не с ПК с помощью USB-кабеля) и только с правами root, поэтому вам необходимо укоренить свое устройство (попробуйте SuperSu из GooglePlay, он работает для большинства устройств)

+0

Хорошо, это интересно! Однако я создаю папку, пишу txt-файл, как в приведенном выше коде. Затем я пытаюсь это прочитать. Все работает. Но если я перезапущу приложение, и я просто попробую прочитать созданный ранее файл, у меня есть файл excpetion (он говорит, что папка не существует, ни файл). Это произошло только на Android, в то время как на Win Phone все работает. Я не понимаю, почему – lorenzogiudici5

+0

Как перезапустить приложение? Вы перезапускаете его с помощью Visual/Xamarin Studio? Или просто перезапустить его после его развертывания на устройстве? – choper

+0

Oh..I перезапустил его с помощью Visual Studio. Если я просто перезапущу приложение, он работает! Я думаю, это должно быть правильно! Спасибо – lorenzogiudici5

0

, если вы хотите сохранить его во внешнем хранилище, может пройти путь к папке и создать файл. Таким образом, вы можете физически получить доступ к этому файлу.

string path="path"; 
IFolder rootFolder = await FileSystem.Current.GetFolderFromPathAsync(path); 
IFolder folder = await rootFolder.CreateFolderAsync("folder", CreationCollisionOption.OpenIfExists); 
IFile file = await folder.CreateFileAsync("file", CreationCollisionOption.ReplaceExisting);