Supprimer un dossier sur une carte SD

J'ai essayé File.delete() mais ça ne marche pas. Comment supprimer un répertoire sur carte SD?

Je travaille sur Android 2.1.

  • Android Looper vs BlockingQueue?
  • Comment Android gère-t-il plusieurs R.java?
  • Comment placer les boutons sur l'image dans Android?
  • Crash webview NullPointerException android.webkit.WebViewDatabase.initDatabase (WebViewDatabase.java:234)
  • Gradle resValue provoque des ressources de chaîne en double
  • Impossible d'ajouter AndEngine à Android Studio
  • Comment convertir le contenu: // Uri dans le chemin du fichier réel?
  • Comment jouer à GIF dans Android
  • Android OPEN spinner avec un simple clic de bouton
  • Android Reorder Fragment Backstack
  • Erreur de volley hors mémoire, tentative d'allocation étrange
  • Utilisation du sélecteur d'une disposition pour modifier les propriétés de son enfant
  • 4 Solutions collect form web for “Supprimer un dossier sur une carte SD”

    Vous devez avoir tout le répertoire vide avant de supprimer le répertoire lui-même, voir ici

    Dans Android, vous devriez également avoir les autorisations appropriées – WRITE_EXTERNAL_STORAGE dans votre manifeste.

    EDIT: pour plus de commodité, j'ai copié le code ici, mais il est encore à partir du lien ci-dessus

     public static boolean deleteDirectory(File path) { if( path.exists() ) { File[] files = path.listFiles(); if (files == null) { return true; } for(int i=0; i<files.length; i++) { if(files[i].isDirectory()) { deleteDirectory(files[i]); } else { files[i].delete(); } } } return( path.delete() ); } 

    https://stackoverflow.com/a/16411911/2397275

     uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" 

    Dans le fichier AndroidManifest.xml

    Ça m'a bien fonctionné, j'espère que cela va vous aider.

     File dir = new File(Environment.getExternalStorageDirectory()+"DirName"); if (dir.isDirectory()) { String[] children = dir.list(); for (int i = 0; i < children.length; i++) { new File(dir, children[i]).delete(); } } 

    Les annuaires doivent être vides avant qu'ils ne soient supprimés. Vous devez vider de façon récursive et supprimer tous les répertoires de l'arborescence:

     boolean delete(File file) { if (file.isDirectory()) { File[] files = file.listFiles(); if (files != null) for (File f : files) delete(f); } return file.delete(); } 

    Mettre à jour:

    Il semble que file.isDirectory() == (file.listFiles() == null) , mais file.listFiles() logs " fail readDirectory() errno=20 " lorsque file.isDirectory() == false .

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.