2017-05-08 6 views
0

まだある、私は別のものをダウンロードして、それをfile.delete()私は、ファイルを見つけることだtrueを返しますが、ファイルが

String destination = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/"; 
String fileName = getResources().getString(R.string.apkname) + ".apk"; 
destination += fileName; 
final Uri uri = Uri.parse("file://" + destination); 

File file = new File(destination); 
if (file.canRead()) { 
    if (file.delete()) { 
     Toast.makeText(getApplicationContext(), "File deleted", Toast.LENGTH_LONG).show(); 
    } 
} 

をインストールする前に、APKファイルを削除するには、このコードを以下のよ私はfile.delete()に行き、トーストメッセージを受け取りますが、ダウンロードをチェックインすると、そのファイルはまだそこにあり、同じ名前の複数のファイルに終わりますが、問題なく使用できます。それはfile.delete()のように全く何もしませんでした。レコードの

、私はマニフェストでWRITE_EXTERNAL_STORAGE権限を持っていると私は間違って何sdkversion 25

を使用しているので、私はあまりにも、実行時にそれを要求しますか?事前

+0

からの参照を持っているあなたは、あなたのAndroidデバイスを再起動しようと、重複したファイルが存在する場合に検証しましたか? –

+0

@Divya私は実際にエミュレータを使用しています。 –

+0

'try'と' exception'を追加し、何がエラーであるかを確認しますか? –

答えて

0

おかげで、私がテストしているこのソリューションをお試しください...

 String destination = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/"; 
     String fileName = getResources().getString(R.string.apkname) + ".apk"; 
     destination += fileName; 

     try { 
      File file = new File(destination); 
      if (file.canRead()) { 

       boolean mDeleleFile = file.delete(); 
       context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(new File(destination)))); 
       if (mDeleleFile) { 
        Toast.makeText(getApplicationContext(), "File deleted", Toast.LENGTH_LONG).show(); 
       } 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

私はHow to delete a file from SD card?

+0

ファイルはありますが、まだトーストメッセージに達していますので、' mDeleteFile'は真です –

+0

私はこの作品を試しました。一度アプリの許可をチェックしてください。アプリ情報で手動で行ってください。外部ストレージのアクセス許可を確認してください – rockstar

+1

遅れて申し訳ありません。実行時に権限が十分に要求されていませんか? あなたのソリューションはどのAndroid版で動作しますか? –

関連する問題