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 Filerappresenta.
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à falseper il primo [e non verrà creata nessuna directory], e trueper il secondo, e tu avrai creatonon_existing_dir/someDir
mkdir()restituisce trueo 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 mkdired mkdirs()è come mkdir -p.
Ad esempio, immagina di avere una /tmpdirectory vuota . Il codice seguente
new File("/tmp/one/two/three").mkdirs();
creerebbe le seguenti directory:
/tmp/one/tmp/one/two/tmp/one/two/threeDove 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.