通过Intent选择文件,然后删除onActivityResult

时间:2016-10-01 15:24:34

标签: android onactivityresult

我想打开一个目录,之后我应该选择一个文件然后将其删除。这是我打开目录的代码:

public void openDirectory() {
        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        Uri uri = Uri.parse(Environment.getExternalStorageDirectory().getAbsolutePath() + "/drugdiy/doc");
        intent.setDataAndType(uri, "*/*");
        startActivityForResult(Intent.createChooser(intent, "Open folder"), 0);
    }

我遇到如何将uri传递给onActivityResult以便我可以将其删除?

    public void onActivityResult(int requestCode, int resultCode, Intent data){
        switch (requestCode) {
            case 0: {
                Uri uri = 
                File file = new File(uri.getPath());
                file.delete();
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

首先,如果您阅读the documentation for ACTION_GET_CONTENT,您会看到:

  

输入:getType()是要检索的所需MIME类型。 请注意,intent中没有提供URI,因为对返回的数据最初来自何处没有限制。

(强调补充)

因此,您的第一个代码段将适用于少数设备。

其次,ACTION_GET_CONTENT不必向您返回文件,更不用说您可以删除的文件了。

There are many file-picker libraries available for Android。用一个。他们应该为您提供File,然后您可以在delete()上致电File