2016-10-01 31 views
0

我想打开一个目录,之后我应该能够选择一个文件然后删除它。这是我的代码打开的目录:通过Intent选择文件然后删除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); 
    } 

我坚持如何通过urionActivityResult,这样我可以删除吗?

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

回答

0

首先,如果你读the documentation for ACTION_GET_CONTENT,您将看到:

输入:的getType()为所需的MIME类型来检索。 请注意,在意图中没有提供URI,因为返回的数据最初来自哪里没有限制。

(强调)

所以,你的第一个代码片段将在几个设备上工作。

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

There are many file-picker libraries available for Android。使用一个。他们应该给你一个File回来,然后你可以拨打电话delete()File