2016-10-01 6 views
0

私はファイルを選択して削除することができるディレクトリを開きたいと思います。これは、ディレクトリを開くために私のコードです:インテントでファイルを選択してから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); 
    } 

私はそれを削除することができるようにonActivityResulturiを渡す方法にこだわっていますか?あなたがthe documentation for ACTION_GET_CONTENTを読めば

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

答えて

0

まず、あなたが表示されます。

入力:のgetType()を取得するために必要なMIMEタイプがあります。 返されたデータがどこから来るかという制約がないため、インテントにはURIは提供されません。

(強調追加)

だから、あなたの最初のコードスニペットは、いくつかのデバイス上で動作します。

第2に、ACTION_GET_CONTENTは、ファイルを削除する必要はありませんが、ファイルを返す必要はありません。

There are many file-picker libraries available for Android。 1つを使用してください。彼らはあなたにFileを返さなければならず、Filedelete()と呼ぶことができます。

関連する問題