Как получить реальный путь с действием OPEN DOCUMENT TREE Intent?
мое приложение загружает и распаковывает файл в определенной папке:
output = new FileOutputStream(realpath, true);
output.write(buffer, 0, bytesRead);
ZipFile zipFile = new ZipFile(realpath);
С Новым представил ACTION_OPEN_DOCUMENT_TREE
намерение, Я хотел бы предложить пользователю выбрать эту папку.
при тестировании значений, полученных в my onActivityResult
, Я получаю путь как /tree/primary:mynewfolder
, который не является физическим реальным путем, как /sdcard/mynewfolder
.
Uri treeUri = data.getData();
String sPath = treeUri.getPath();
Log.v("Path from Tree ", sPath);
мой метод распаковки нужен реальный путь:
ZipFile zipFile = new ZipFile(realpath);
как мне получить реальный путь, как /sdcard/mynewfolder
из предоставленного URI в Леденец на палочке (API 21 и 22)?
1 ответов
процесс получения реального пути из URI такой же, как и раньше, но с небольшим добавлением:
Uri uri = data.getData();
Uri docUri = DocumentsContract.buildDocumentUriUsingTree(uri,
DocumentsContract.getTreeDocumentId(uri));
String path = getPath(this, docUri);
суть метода getPath () с промежуточными методами можно найти здесь: getPath()