2017-07-27 12 views
0

ファイルを削除しようとしていますが、ファイルが削除されておらず、アプリケーションでエラーが発生していません。以下は私のコードです:File.delete()とUriを使用してファイルを削除する

final File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + '/' + "howmany.txt"); 

    Uri uri = Uri.fromFile(file); 
    Boolean k = new File(uri.getPath()).delete(); 
    if(k){ 
     Toast.makeText(getApplicationContext(), "DELETED", Toast.LENGTH_SHORT).show(); 
    } 

アクションが完了した場合、私は、私はトーストを表示することがあるのであれば、右のパーミッションをチェックした後にこのコードを入れて、私の理解、.delete() trueを返しますからしかしトーストです表示されません。一番不思議なのは、私は何の誤りもないということですが、それはうまく機能していません。

+2

なぜそれをUriに変換し、そのUriに基づいて新しいファイルを削除するのですか? –

+0

@rabbitguyは他のスタックの質問からそれを得ました。私はUriのものをすべて取り出すべきですか? – cjnash

+1

あなたはそのオブジェクトを作成した後、そのオブジェクトを作成した後に 'file.delete();'と言うことができます。 –

答えて

1

ファイルオブジェクトのUriを作成し、そのUriからファイルオブジェクトを作成する必要はありません。ファイルオブジェクトを削除し、その結果から真偽値を取得してください。ブール値kも作成する必要はありません。

final File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + '/' + "howmany.txt"); 
if (file.delete()) 
    Toast.makeText(getApplicationContext(), "DELETED", Toast.LENGTH_SHORT).show(); 
関連する問題