Kann Datei nicht mit der Datei Klasse löschen

Ich versuche, eine Musikdatei durch meine App zu löschen, kann aber das nicht erreichen. Ive überprüft mit

boolean exists = temp.exists(); boolean isFile = temp.isFile(); 

Wenn es wahr ist und ja sie sind. Diese Methoden geben mich wahr. Aber wenn ich zur Delete-Methode komme:

  • Absicht nicht von Android Geofence Veranstaltung erhalten
  • Benutzerdefinierte Schriftarten in Android
  • Xamarin Forms MasterDetail Seitennavigation verursacht Crash auf Android , Funktioniert auf iOS und UWP
  • Überschreiben Sie die Google Kalender-Standardeinstellungen für Erinnerungen
  • Zuhörer (oder Handler) für Video-Finish
  • LinearLayout überlappende Unterstützung CoordinatorLayout
  •  boolean deleted = temp.delete(); 

    Es gibt mich falsch und die Datei wird nicht gelöscht. Es gibt keine Ausnahme wirft nur eine falsche Rückkehr zu meiner gelöschten Variablen.

    Im auch mit diesen permissons:

     <uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> <uses-permission android:name="android.permission.ACTION_HEADSET_PLUG"/> 

    Jemand hat eine Idee für eine Lösung? (Oder andere Klassen kann ich verwenden?)

    Bearbeiten: Das ist mein vollständiger Code

     File temp = new File(str_path); boolean exists = temp.exists(); boolean isFile = temp.isFile(); if (exists)) { boolean deleted = temp.delete(); if (deleted) { Toast.makeText(context, "Successful deleted " + Title_Artist, Toast.LENGTH_SHORT).show(); } else { Toast.makeText(context, "Not able to delete file " + Title_Artist, Toast.LENGTH_SHORT).show(); } } 

    (Und ich habe beim Debuggen überprüft, ob das Objekt seinen Weg darin hat und es hat)

  • TransformClassesAndResourcesWithProguardForRelease FAILED
  • Android MediaPlayer-Reset setzt die Benutzeroberfläche ein
  • Kreis-Seiten-Indikator - wie man die Füllfarbe ändert
  • Antialiased abgerundete Ecken auf Android ImageView
  • Android - Holen Sie sich nur eine Zeit
  • Android Google Maps in Fragment
  • 4 Solutions collect form web for “Kann Datei nicht mit der Datei Klasse löschen”

    Löschen von Datei Musik müssen Sie zwei Aufgabe:

    1. Datei im Speicher löschen.

       public static boolean delete(File path) { boolean result = true; if (path.exists()) { if (path.isDirectory()) { for (File child : path.listFiles()) { result &= delete(child); } result &= path.delete(); // Delete empty directory. } if (path.isFile()) { result &= path.delete(); } if (!result) { Log.e("Delete", "Delete failed;"); } return result; } else { Log.e("Delete", "File does not exist."); return false; } } 
    2. Datei aus MediaStore löschen:

       public static void deleteFileFromMediaStore(final ContentResolver contentResolver, final File file) { int sdk = android.os.Build.VERSION.SDK_INT; if (sdk >= android.os.Build.VERSION_CODES.HONEYCOMB) { String canonicalPath; try { canonicalPath = file.getCanonicalPath(); } catch (IOException e) { canonicalPath = file.getAbsolutePath(); } final Uri uri = MediaStore.Files.getContentUri("external"); final int result = contentResolver.delete(uri, MediaStore.Files.FileColumns.DATA + "=?", new String[]{canonicalPath}); if (result == 0) { final String absolutePath = file.getAbsolutePath(); if (!absolutePath.equals(canonicalPath)) { contentResolver.delete(uri, MediaStore.Files.FileColumns.DATA + "=?", new String[]{absolutePath}); } } } } 

    Sie können den MediaStore zurücksetzen / neu scannen, anstatt einen Code oben zu verwenden.

    Hinweis: Wenn Sie aus SD-Karte und Android 4.4 + löschen

    Ändern für Android 4.4+ : Apps dürfen nicht mit den paketspezifischen Verzeichnissen auf den externen Speicher schreiben (löschen, ändern …)

    Der Weg von deinem Kommentar sieht aus wie die Datei auf einer abnehmbaren SD-Karte ist. Sie benötigen spezielle Berechtigungen für Android 4.4+, um Dateien auf einer SD-Karte zu verwalten oder zu löschen. Sie müssen DocumentFile#delete() .

    Für Hilfe beim Zugriff auf Dateien auf einer entfernbaren SD-Karte mit DocumentFile siehe folgende StackOverflow Post:

    Wie benutzt man die neue SD-Kartenzugriffs-API für Android 5.0 (Lollipop)?


    Es gibt auch einen Hack, der ohne Verwendung von DocumentFile funktionieren könnte, wie es der Entwickler des FX-Dateimanagers hier erklärt hat: http://forum.xda-developers.com/showpost.php?p=52151865

    Da Sie überprüfen, dass die Datei existiert, kann es nur einen Grund geben, dass Sie die Datei nicht löschen können: Sie haben keine Berechtigungen, um es zu tun.

    Eine App kann keine Systemdateien oder Dateien anderer Apps löschen.

    Angenommen, Ihr Dateipfad ist

     Environment.getExternalStorageDirectory().getPath() + "/Music" + "/" + "song.mp3" 

    Löschen Sie es so

     File dir = new File(Environment.getExternalStorageDirectory() .getPath() + "/Music"); if (dir.isDirectory()) {new File(dir, song.mp3).delete();} 

    Wenn du alle Dateien im Musikordner löschen möchtest, mach das

     if (dir.isDirectory()) { String[] children = dir.list(); for (int i = 0; i < children.length; i++) { new File(dir, children[i]).delete(); } } 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.