У меня есть приложение, которое позволяет пользователю выбрать файл из средства выбора файлов. Проблема заключается в том, что когда я пытаюсь превратить этот Uri в файл, он создает что-то, что я не могу использовать (/document/raw:/storage/emulated/0/Download/CBTJourney-Backup/EntriesBackup1570487830108
). Я бы хотел избавиться от всего до raw:
, но правильным способом. Где бы я ни пытался скопировать этот файл, используя InputStream
, он ничего не копирует. Как будто файл не существует. Есть идеи?
public void chooseDatabaseFile() {
Intent intent = new Intent();
intent.addCategory(Intent.CATEGORY_OPENABLE);
// Set your required file type
intent.setType("*/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Choose Database to Import"),GET_FILE_PATH);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == GET_FILE_PATH && data != null) {
if(resultCode == RESULT_OK){
Uri currFileURI = data.getData();
if(currFileURI == null) {
return;
}
else{
String databasePath = currFileURI.getPath();
// TODO: Determine if actual database
importDatabase(new File(databasePath));
// File produces "/document/raw:/storage/emulated/0/Download/CBTJourney-Backup/EntriesBackup1570487830108"
}
}
}
}