Quelqu'un peut-il me dire la différence entre ces deux méthodes:
file.mkdir()
file.mkdirs()
Quelqu'un peut-il me dire la différence entre ces deux méthodes:
file.mkdir()
file.mkdirs()
Réponses:
mkdirs()
crée également des répertoires parents dans le chemin que cela File
représente.
javadocs pour mkdirs()
:
Crée le répertoire nommé par ce chemin abstrait, y compris tous les répertoires parents nécessaires mais inexistants. Notez que si cette opération échoue, elle peut avoir réussi à créer certains des répertoires parents nécessaires.
javadocs pour mkdir()
:
Crée le répertoire nommé par ce chemin abstrait.
Exemple:
File f = new File("non_existing_dir/someDir");
System.out.println(f.mkdir());
System.out.println(f.mkdirs());
cédera false
pour le premier [et aucun répertoire ne sera créé], et true
pour le second, et vous aurez créénon_existing_dir/someDir
mkdir()
renvoie true
- false
t-il ou ? Le javadoc ne semble pas couvrir cet aspect.
mkdirs()
créera le chemin du répertoire spécifié dans son intégralité où mkdir()
ne créera que le répertoire le plus bas, échouant s'il ne trouve pas le répertoire parent du répertoire qu'il tente de créer.
En d'autres termes, mkdir()
c'est comme mkdir
et mkdirs()
c'est comme mkdir -p
.
Par exemple, imaginons que nous ayons un /tmp
répertoire 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 reviendrait false
.
mkdir()
ne crée qu'un seul répertoire à la fois, s'il s'agit d'un seul parent. autrement, il peut créer le sous-répertoire (si le chemin spécifié existe uniquement) et ne pas créer de répertoires entre deux répertoires. il ne peut donc pas créer plusieurs répertoires dans un même répertoire
mkdirs()
créer les répertoires multiples (entre deux répertoires également) à la fois.