Как получить имя файла и реальный путь к файлу диска Google?
Я использую следующий код, чтобы получить имя файла и путь к файлам в Диспетчере файлов. Однако он не возвращает путь к файлам Google Диска. Любая идея, как получить фактический путь?
Мой код -
public String getFilePath() {
if (uri.getScheme().equalsIgnoreCase("file")) {
return uri.getLastPathSegment();
}
cursorLoader.setUri(uri);
cursorLoader.setProjection(projections);
Cursor cursor = cursorLoader.loadInBackground();
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Files.FileColumns.DATA);
cursor.moveToFirst();
String realPath = cursor.getString(column_index);
cursor.close();
if (realPath == null || realPath.isEmpty()) {
return null;
}
return null;
}
Ответы
Ответ 1
Вы должны использовать URI. Через URI вы можете getContentResolver.query(theUriThatYouHave, null, null, null, null)
. Теперь, когда у вас есть курсор, вы можете проверить имена столбцов и т.д.
Для диска Google есть имя столбца _display_name
. Это даст вам имя файла.
Теперь вы хотите получить доступ к файлу? Вы можете открыть InputStream
в URI через getContentResolver().openInputStream(theUriThatYouHave)
.