¿Alguien puede decirme la diferencia entre estos dos métodos:
file.mkdir()
file.mkdirs()
¿Alguien puede decirme la diferencia entre estos dos métodos:
file.mkdir()
file.mkdirs()
Respuestas:
mkdirs()
también crea directorios principales en la ruta que esto File
representa.
javadocs para mkdirs()
:
Crea el directorio nombrado por este nombre de ruta abstracto, incluidos los directorios principales necesarios pero no existentes. Tenga en cuenta que si esta operación falla, puede haber tenido éxito en la creación de algunos de los directorios principales necesarios.
javadocs para mkdir()
:
Crea el directorio nombrado por este nombre de ruta abstracto.
Ejemplo:
File f = new File("non_existing_dir/someDir");
System.out.println(f.mkdir());
System.out.println(f.mkdirs());
rendirá false
para el primero [y no se creará ningún directorio], y true
para el segundo, y habrá creadonon_existing_dir/someDir
mkdir()
devuelve true
o false
? El javadoc no parece cubrir este aspecto.
mkdirs()
creará la ruta de directorio especificada en su totalidad donde mkdir()
solo creará el directorio más inferior, fallando si no puede encontrar el directorio padre del directorio que está tratando de crear.
En otras palabras, mkdir()
es como mkdir
y mkdirs()
es como mkdir -p
.
Por ejemplo, imagine que tenemos un /tmp
directorio vacío . El siguiente código
new File("/tmp/one/two/three").mkdirs();
crearía los siguientes directorios:
/tmp/one
/tmp/one/two
/tmp/one/two/three
Donde este código:
new File("/tmp/one/two/three").mkdir();
no crearía ningún directorio, como no lo encontraría /tmp/one/two
, y volvería false
.
mkdir()
crea un solo directorio a la vez, si es padre ese solo. de lo contrario, puede crear el subdirectorio (si la ruta especificada solo existe) y no crear ningún directorio entre dos directorios. por lo que no puede crear directorios múltiples en un directorio
mkdirs()
cree los directorios múltiples (entre dos directorios también) a la vez.