Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
aquaMakc
472 / 385 / 68
Регистрация: 14.02.2014
Сообщений: 1,883
Завершенные тесты: 1
#1

Получить путь к текстовому файлу по его Uri

22.02.2017, 15:20. Просмотров 625. Ответов 18

Доброго времени суток.
Необходимо прочитать и десериализовать файл XML.
Запуская неявный Intent указываю нужный файл и в onActivityResult получаю на него Uri.
А вот как из Uri получить путь, чтобы можно было сам файл прочитать - не могу понять.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2017, 15:20
Ответы с готовыми решениями:

Как из data.getData() получить путь к файлу?
Добрый вечер! Столкнулся с необходимость открыть изображение из галереи...

Как правильно создать файл из Uri или Uri.getPath() для отправки на сервер?
Есть Uri, полученный после выбора файлов в галерее. Uri вроде правильный:...

Путь к файлу
Пишу приложение под андроид,возникла такая сложность, когда сохраняю файл,не...

Путь к файлу и графические ресурсы
Понимаю, что вопрос детский, но тем не менее... Есть строковая переменная,...

Узнать абсолютный путь к файлу
как можно узнать абсолютный путь к файлу? В классе наследуемом от Фрагмент...

18
shavuz
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 596
22.02.2017, 15:43 #2
вот так по идее
Java
1
 File file = new File(uri.getPath());
0
aquaMakc
472 / 385 / 68
Регистрация: 14.02.2014
Сообщений: 1,883
Завершенные тесты: 1
22.02.2017, 15:46  [ТС] #3
Цитата Сообщение от shavuz Посмотреть сообщение
вот так по идее
нет, не так
java.io.FileNotFoundException: /document/primaryocuments/MyPreset1.xml: open failed: ENOENT (No such file or directory)
0
shavuz
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 596
22.02.2017, 15:58 #4
Жаль :-) пермишн писать/читать есть?
0
aquaMakc
472 / 385 / 68
Регистрация: 14.02.2014
Сообщений: 1,883
Завершенные тесты: 1
22.02.2017, 16:00  [ТС] #5
Цитата Сообщение от shavuz Посмотреть сообщение
пермишн писать есть
с записью проблем нет. Если руками указываю путь - читаю без проблем.
Проблема с получением пути из Uri, который в Intente получаю, когда надо файл выбрать.
0
shavuz
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 596
22.02.2017, 16:02 #6
как выглядит путь из интента?
0
aquaMakc
472 / 385 / 68
Регистрация: 14.02.2014
Сообщений: 1,883
Завершенные тесты: 1
22.02.2017, 16:04  [ТС] #7
Цитата Сообщение от shavuz Посмотреть сообщение
как выглядит путь из интента?
/document/primaryocuments/MyPreset1.xml
0
shavuz
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 596
22.02.2017, 16:08 #8
и руками то же самое указываешь?
0
aquaMakc
472 / 385 / 68
Регистрация: 14.02.2014
Сообщений: 1,883
Завершенные тесты: 1
22.02.2017, 16:08  [ТС] #9
Цитата Сообщение от shavuz Посмотреть сообщение
и руками то же самое указываешь?
нет
0
ExFau$t
542 / 493 / 107
Регистрация: 08.05.2012
Сообщений: 2,471
22.02.2017, 16:29 #10
Java
1
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+uri.getPath());
0
aquaMakc
472 / 385 / 68
Регистрация: 14.02.2014
Сообщений: 1,883
Завершенные тесты: 1
22.02.2017, 16:32  [ТС] #11
ExFau$t, тот-же эффект
0
ExFau$t
542 / 493 / 107
Регистрация: 08.05.2012
Сообщений: 2,471
22.02.2017, 16:37 #12
Какой полный путь у файла?
0
aquaMakc
472 / 385 / 68
Регистрация: 14.02.2014
Сообщений: 1,883
Завершенные тесты: 1
22.02.2017, 16:41  [ТС] #13
Цитата Сообщение от ExFau$t Посмотреть сообщение
Какой полный путь у файла?
Файл лежит тут:
/storage/emulated/0/Documents/
Uri возвращает это:
/document/primaryocuments/MyPreset1.xml

Как путь к файлу это не воспринимается. При попытке прочитать получаю эксепшн.
0
ExFau$t
542 / 493 / 107
Регистрация: 08.05.2012
Сообщений: 2,471
22.02.2017, 16:43 #14
тогда доставай имя файла и дописывай сюда:
Java
1
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"Documents/"+name);
0
aquaMakc
472 / 385 / 68
Регистрация: 14.02.2014
Сообщений: 1,883
Завершенные тесты: 1
22.02.2017, 16:46  [ТС] #15
Цитата Сообщение от ExFau$t Посмотреть сообщение
тогда доставай имя файла и дописывай сюда
файл может лежать в произвольном месте, т.к. может создаваться и редактироваться не только из программы, но и на ПК. После чего может передаваться по USB, почте, Viber и т.д.
0
ExFau$t
542 / 493 / 107
Регистрация: 08.05.2012
Сообщений: 2,471
22.02.2017, 16:48 #16
Java
1
2
String path = uri.toString() 
File file = new File(new URI(path));
0
aquaMakc
472 / 385 / 68
Регистрация: 14.02.2014
Сообщений: 1,883
Завершенные тесты: 1
22.02.2017, 16:51  [ТС] #17
ExFau$t, не работает:
java.lang.IllegalArgumentException: Expected file scheme in URI: content://com.android.externalstorage.documents/document/primary%3ADocuments%2FMyPreset1.xml

Ломается на
Java
1
File file = new File(new URI(path));
0
ExFau$t
542 / 493 / 107
Регистрация: 08.05.2012
Сообщений: 2,471
22.02.2017, 16:55 #18
Java
1
2
String path = uri.getPath(); 
File file = new File(new URI(path));
0
aquaMakc
472 / 385 / 68
Регистрация: 14.02.2014
Сообщений: 1,883
Завершенные тесты: 1
22.02.2017, 16:56  [ТС] #19
ExFau$t, тот-же эффект
0
22.02.2017, 16:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2017, 16:56

Работа с txt файлами в Android. Путь к файлу
Здравствуйте! Уже 3ий день не могу разобраться с тем, как считывать из txt...

Как получить доступ к root файлу
Всем привет. Допустим есть файл, его не видно без доступа к root. Как получить...

У нас был eclipse ,windows 8 x64 и куча фигни [ Filed to load the JNI shared libray "путь к файлу"]
Сообственно всё в название темы. Винда x64(windows 8) яву качал со сторонего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru