web-dev-qa-db-fra.com

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?

50
Alxandr

Fichier Java régulier IO:

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

Peut-être aussi vouloir vérifier f.exists(), car s'il existe, et isDirectory() renvoie false, vous aurez un problème. Il y a aussi isReadable()...

Vérifiez ici pour plus de méthodes que vous pourriez trouver utiles.

114
synic
File dir = new File(Environment.getExternalStorageDirectory() + "/mydirectory");
if(dir.exists() && dir.isDirectory()) {
    // do something here
}
39
Mark B

Le code suivant fonctionne également pour les fichiers Java:

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

J'ai commis une erreur en vérifiant le fichier/répertoire. En effet, il vous suffit d'appeler isFile() ou isDirectory(). Voici la docs

Vous n'avez pas besoin d'appeler exists() si vous avez déjà appelé isFile() ou isDirectory().

1
user942821

Utilisation générale cette fonction pour vérifier s’il existe un répertoire:

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!!'
}
1
Ingo

Yup a essayé beaucoup, sous le code m'aide :)

 File folder = new File(Environment.getExternalStorageDirectory() + File.separator + "ur directory name");

                if (!folder.exists()) {
                    Log.e("Not Found Dir", "Not Found Dir  ");
                } else {
                    Log.e("Found Dir", "Found Dir  " );
                   Toast.makeText(getApplicationContext(),"Directory is already exist" ,Toast.LENGTH_SHORT).show();
                }

0
Agilanbu