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.