web-dev-qa-db-fra.com

Différence entre mkdir () et mkdirs () dans Java pour Java.io.File

Quelqu'un peut-il me dire la différence entre file.mkDir() et file.mkDirs()?

110
Krishna Kankal

mkdirs() crée également les répertoires parents dans le chemin que représente File.

javadocs pour mkdirs():

Crée le répertoire nommé par ce chemin d'accès abstrait, y compris tous les répertoires parents nécessaires mais non existants. Notez que si cette opération échoue, il est possible que certains des répertoires parent nécessaires aient été créés.

javadocs pour mkdir():

Crée le répertoire nommé par ce chemin d'accès abstrait.

Exemple:

File  f = new File("non_existing_dir/someDir");
System.out.println(f.mkdir());
System.out.println(f.mkdirs());

donnera false pour le premier [et aucun répertoire ne sera créé], et true pour le second, et vous aurez créé non_existing_dir/someDir

145
amit

mkdirs() créera le chemin du répertoire spécifié dans son intégralité, où mkdir() créera uniquement le répertoire le plus bas, faute de trouver le répertoire parent du répertoire qu'il tente de créer.

En d'autres termes, mkdir() est comme mkdir et mkdirs() est comme mkdir -p.

Par exemple, imaginons que nous ayons un répertoire vide /tmp. Le code suivant

new File("/tmp/one/two/three").mkdirs();

créerait les répertoires suivants:

  • /tmp/one
  • /tmp/one/two
  • /tmp/one/two/three

Où ce code:

new File("/tmp/one/two/three").mkdir();

ne créerait aucun répertoire - car il ne trouverait pas /tmp/one/two - et renverrait false.

56
Dave Webb
mkdir()

crée un seul répertoire à la fois, s'il n'est parent que de celui-ci. autrement, il peut créer le sous-répertoire (si le chemin spécifié n'existe que) et ne créer aucun répertoire entre deux répertoires. il ne peut donc pas créer plusieurs répertoires dans un répertoire

mkdirs()

créer plusieurs répertoires (entre deux répertoires également) à la fois.

4
Durga Rao