Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930

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

22.02.2017, 15:20. Показов 5805. Ответов 18

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Необходимо прочитать и десериализовать файл XML.
Запуская неявный Intent указываю нужный файл и в onActivityResult получаю на него Uri.
А вот как из Uri получить путь, чтобы можно было сам файл прочитать - не могу понять.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.02.2017, 15:20
Ответы с готовыми решениями:

Узнать путь к текстовому файлу
У меня такой вопрос. Создал текстовый файл на рабочем столе. Как в программе вывести путь к этому файлу?

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

Как через класс URI указать путь к файлу на диске
Здравствуйте. Эта проблема взялась при работе с XNA. http://msdn.microsoft.com/en-us/library/ff634558(v=xnagamestudio.40) вот здесь...

18
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 609
22.02.2017, 15:43
вот так по идее
Java
1
 File file = new File(uri.getPath());
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
22.02.2017, 15:46  [ТС]
Цитата Сообщение от shavuz Посмотреть сообщение
вот так по идее
нет, не так
java.io.FileNotFoundException: /document/primaryocuments/MyPreset1.xml: open failed: ENOENT (No such file or directory)
0
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 609
22.02.2017, 15:58
Жаль :-) пермишн писать/читать есть?
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
22.02.2017, 16:00  [ТС]
Цитата Сообщение от shavuz Посмотреть сообщение
пермишн писать есть
с записью проблем нет. Если руками указываю путь - читаю без проблем.
Проблема с получением пути из Uri, который в Intente получаю, когда надо файл выбрать.
0
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 609
22.02.2017, 16:02
как выглядит путь из интента?
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
22.02.2017, 16:04  [ТС]
Цитата Сообщение от shavuz Посмотреть сообщение
как выглядит путь из интента?
/document/primaryocuments/MyPreset1.xml
0
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 609
22.02.2017, 16:08
и руками то же самое указываешь?
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
22.02.2017, 16:08  [ТС]
Цитата Сообщение от shavuz Посмотреть сообщение
и руками то же самое указываешь?
нет
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
22.02.2017, 16:29
Java
1
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+uri.getPath());
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
22.02.2017, 16:32  [ТС]
ExFau$t, тот-же эффект
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
22.02.2017, 16:37
Какой полный путь у файла?
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
22.02.2017, 16:41  [ТС]
Цитата Сообщение от ExFau$t Посмотреть сообщение
Какой полный путь у файла?
Файл лежит тут:
/storage/emulated/0/Documents/
Uri возвращает это:
/document/primaryocuments/MyPreset1.xml

Как путь к файлу это не воспринимается. При попытке прочитать получаю эксепшн.
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
22.02.2017, 16:43
тогда доставай имя файла и дописывай сюда:
Java
1
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"Documents/"+name);
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
22.02.2017, 16:46  [ТС]
Цитата Сообщение от ExFau$t Посмотреть сообщение
тогда доставай имя файла и дописывай сюда
файл может лежать в произвольном месте, т.к. может создаваться и редактироваться не только из программы, но и на ПК. После чего может передаваться по USB, почте, Viber и т.д.
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
22.02.2017, 16:48
Java
1
2
String path = uri.toString() 
File file = new File(new URI(path));
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
22.02.2017, 16:51  [ТС]
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
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
22.02.2017, 16:55
Java
1
2
String path = uri.getPath(); 
File file = new File(new URI(path));
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
22.02.2017, 16:56  [ТС]
ExFau$t, тот-же эффект
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.02.2017, 16:56
Помогаю со студенческими работами здесь

как правильно записать путь к текстовому файлу если он на рабочем столе
ListBox1.Items.LoadFromFile('список.txt'); так не работает, пишет не правильный путь. файл называется "список" формат txt. И...

Программа запрашивает путь к текстовому файлу и дописывает в него компонент «Мама ела кашу»
Программа запрашивает путь к текстовому файлу и дописывает в него компонент «Мама ела кашу».

Получить путь к открываемому файлу через открытие его своим приложением с помощью контекстного меню Windows
Уважаемые коллеги, кто может помочь с проблемой? Добавил в контекстное меню проводника Windows собственный пункт, при выборе которого...

Получить путь к каталогу из uri
Приветствую, string patch =...

Как программно получить путь к файлу конфигураций программы (файлу user.config)?
Задался целью программно очистить параметры программы, которые сохраняются в файле user.config. Так как параметров много, чтобы очистить...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru