Qualcuno può dirmi la differenza tra questi due metodi:
file.mkdir()
file.mkdirs()
Qualcuno può dirmi la differenza tra questi due metodi:
file.mkdir()
file.mkdirs()
Risposte:
mkdirs()
crea anche le directory padre nel percorso che File
rappresenta.
javadocs per mkdirs()
:
Crea la directory denominata da questo percorso astratto, incluse tutte le directory padre necessarie ma inesistenti. Notare che se questa operazione fallisce, potrebbe essere riuscita a creare alcune delle directory principali necessarie.
javadocs per mkdir()
:
Crea la directory denominata da questo percorso astratto.
Esempio:
File f = new File("non_existing_dir/someDir");
System.out.println(f.mkdir());
System.out.println(f.mkdirs());
cederà false
per il primo [e non verrà creata nessuna directory], e true
per il secondo, e tu avrai creatonon_existing_dir/someDir
mkdir()
restituisce true
o false
? Il javadoc non sembra coprire questo aspetto.
mkdirs()
creerà il percorso della directory specificato nella sua interezza, dove mkdir()
creerà solo la directory più in basso, fallendo se non riesce a trovare la directory principale della directory che sta cercando di creare.
In altre parole mkdir()
è come mkdir
ed mkdirs()
è come mkdir -p
.
Ad esempio, immagina di avere una /tmp
directory vuota . Il codice seguente
new File("/tmp/one/two/three").mkdirs();
creerebbe le seguenti directory:
/tmp/one
/tmp/one/two
/tmp/one/two/three
Dove questo codice:
new File("/tmp/one/two/three").mkdir();
non creerebbe alcuna directory - poiché non la troverebbe /tmp/one/two
- e tornerebbe false
.
mkdir()
crea solo una directory alla volta, se è genitore solo quella. altrimenti può creare la sottodirectory (se esiste solo il percorso specificato) e non creare alcuna directory tra due directory. quindi non può creare più directory in una directory
mkdirs()
creare più directory (anche tra due directory) alla volta.