如何通过文件选择器从Uri返回文件中打开文件?

时间:2019-05-30 13:15:13

标签: android android-intent filepicker.io android-internal-storage

我正在尝试打开然后移动文件。我通过意图使用文件选择器选择文件,这返回一个结果,该结果是Uri指向设备内部存储上的文件。

当我查看Uri的路径时,如下所示,/ document / 856代表了我选择的文件,即名为README.txt的TextFile。我试图利用Uri将此文件读入File对象,然后将其移至/data/user/0/com.example.bootloader/files/bluetoothchat_files/,这是我的内部存储目录应用程式。

目前,我似乎还无法弄清楚如何使用onActivityResult调用中返回的Uri打开File对象。我正在尝试该文件,但是当我尝试检查“文件找不到文件”时。

我已经尝试了有关该主题的所有stackoverflow解决方案,但是似乎无法解决我的问题。我已阅读https://developer.android.com/training/data-storage/files.html#WriteInternalStorage,但是我想使用Uri来打开文件。

这是用于检查文件是否存在的onActivity结果回调代码。

           if (resultCode == Activity.RESULT_OK) {

                Uri uploadfileuri = data.getData();
                File file = new File(uploadfileuri.getPath());


                if(file.exists())
                {
                    Log.i(TAG, "onActivityResult: Found the file");
                }
                else
                {
                    Log.i(TAG, "onActivityResult: Cannot find the file");
                }

            }

此行用于触发文件选择器的意图。

startActivityForResult(newIntent(Intent.ACTION_GET_CONTENT).setType("*/"),CHOOSE_FILE);

我希望能够使用File对象打开Uri返回的文件。如果我可以打开文件,则打算使用srcFile.to(desFile)方法将文件移动到所需目录。 关于如何解决从Uri中打开所需文件的任何帮助或想法?

0 个答案:

没有答案