Quelqu'un peut-il me dire la différence entre file.mkDir()
et file.mkDirs()
?
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
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
.
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.