将内部Uri转换为Android中的文件吗?

问题描述 投票:0回答:1

我有一个允许用户从文件选择器中选择文件的应用程序。问题出在当我尝试将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"
            }
        }
    }
}
java android file uri
1个回答
0
投票

您是否尝试过更改模仿类型?

否则,请看一下:

Convert file: Uri to File in Android

© www.soinside.com 2019 - 2024. All rights reserved.