61 votes

Vérifier si le répertoire existe sur la carte SD d'Android.

Comment vérifier si un répertoire existe sur la carte SD sous Android ?

128voto

synic Points 12644

IO régulière de fichiers Java :

File f = new File(Environment.getExternalStorageDirectory() + "/somedir");
if(f.isDirectory()) {
   ....

Vous pouvez également vérifier f.exists() car si elle existe, et isDirectory() retourne false, vous aurez un problème. Il y a aussi isReadable() ...

Vérifiez aquí pour d'autres méthodes que vous pourriez trouver utiles.

0 votes

Mon erreur s'est juste avérée être un répertoire manquant dans mon chemin, mais merci. Je commençais à me demander si le système de fichiers d'Android ne supportait pas des méthodes normales comme celle-ci :-P

3 votes

Juste une note, getExternalStorageDirectory() peut ne pas pointer vers la carte sd_ physique, il pourrait pointer vers le stockage interne. [developer.Android.com/reference/Android/os/](http://developer.android.com/reference/android/os/Environment.html#getExternalStorageDirectory())

1 votes

Chrispix, votre commentaire est trompeur. getExternalStorageDirectory() pointera vers le stockage qui partage les données entre toutes les applications. Il peut s'agir de la carte SD, et pour les appareils sans carte SD, elle pointe vers la zone de stockage réservée qui est utilisée comme stockage externe. Le stockage interne est l'endroit où sont stockées les données privées (pour l'application - généralement des données/données).

42voto

mbaird Points 31293
File dir = new File(Environment.getExternalStorageDirectory() + "/mydirectory");
if(dir.exists() && dir.isDirectory()) {
    // do something here
}

2 votes

Est-il nécessaire de vérifier les deux si exists() y isDirectory() ? Et si nous utilisions l'un d'entre eux ?

16voto

Artail3 Points 57

Le code suivant fonctionne également pour les fichiers java :

// Create file upload directory if it doesn't exist    
if (!sdcarddir.exists())
   sdcarddir.mkdir();

2voto

Tom Points 151

Général Utilisez cette fonction pour vérifier si un Dir existe :

public boolean dir_exists(String dir_path)
  {
    boolean ret = false;
    File dir = new File(dir_path);
    if(dir.exists() && dir.isDirectory())
      ret = true;
    return ret;
  }

Utilisez la fonction comme :

String dir_path = Environment.getExternalStorageDirectory() + "//mydirectory//";

if (!dir_exists(dir_path)){
  File directory = new File(dir_path); 
  directory.mkdirs(); 
}

if (dir_exists(dir_path)){
  // 'Dir exists'
}else{
// Display Errormessage 'Dir could not creat!!'
}

1voto

J'ai fait l'erreur de vérifier le fichier/répertoire. En effet, il suffit d'appeler isFile() o isDirectory() . Voici le docs

Vous n'avez pas besoin d'appeler exists() si jamais vous appelez isFile() o isDirectory() .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X