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.

  • Comment faire une distinction entre le chemin de carte SD interne et externe dans Android
  • Impossible de pousser le (s) élément (s). Dans Android
  • GetExternalStorageDirectory ne fonctionne pas
  • Installation de l'application Android sans carte SD
  • Intention Android pour la carte SdD prête
  • Android Mediaplayer: problème setDataSource pour le fichier multimédia téléchargé
  • Certains appareils Android traitent le stockage interne en tant que cartes SD et stockage externe comme EXTSD
  • Trouver un emplacement de carte SD externe
  • 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.