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() ?

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

javadocs pour mkdirs() :

Crée le répertoire nommé par ce nom de chemin abstrait, y compris tous les répertoires parents nécessaires mais inexistants. Notez que si cette opération échoue, elle a peut-être réussi à créer certains des répertoires parents nécessaires.

javadocs pour mkdir() :

Crée le répertoire nommé par ce chemin d’access abstrait.

Exemple:

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

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

mkdirs() créera le chemin de répertoire spécifié dans son intégralité, où mkdir() créera uniquement le répertoire le plus bas, à défaut si le répertoire parent du répertoire qu’il essaie de créer n’a pas été trouvé.

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

Par exemple, imaginons que nous ayons un /tmp vide. 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 .

 mkdir() 

ne crée qu’un seul répertoire à la fois, s’il est parent uniquement. Sinon, il peut créer le sous-répertoire (si le chemin spécifié existe uniquement) et ne créer aucun répertoire entre deux répertoires. il ne peut donc pas créer de répertoires multiples dans un répertoire

 mkdirs() 

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