Alguém pode me dizer a diferença entre estes dois métodos:
file.mkdir()file.mkdirs()
Alguém pode me dizer a diferença entre estes dois métodos:
file.mkdir()file.mkdirs()Respostas:
mkdirs()também cria diretórios pai no caminho que isso Filerepresenta.
javadocs para mkdirs():
Cria o diretório nomeado por esse caminho abstrato, incluindo todos os diretórios pai necessários, mas inexistentes. Observe que, se essa operação falhar, ela poderá criar alguns dos diretórios-pai necessários.
javadocs para mkdir():
Cria o diretório nomeado por este caminho abstrato.
Exemplo:
File f = new File("non_existing_dir/someDir");
System.out.println(f.mkdir());
System.out.println(f.mkdirs());
renderá falsepara o primeiro [e nenhum diretório será criado] e truepara o segundo, e você terá criadonon_existing_dir/someDir
mkdir()retornará trueou false? O javadoc não parece cobrir esse aspecto.
mkdirs()criará o caminho do diretório especificado em sua totalidade, onde mkdir()somente criará o diretório mais inferior, falhando se não conseguir encontrar o diretório pai do diretório que está tentando criar.
Em outras palavras, mkdir()é como mkdire mkdirs()é como mkdir -p.
Por exemplo, imagine que temos um /tmpdiretório vazio . O código a seguir
new File("/tmp/one/two/three").mkdirs();
criaria os seguintes diretórios:
/tmp/one/tmp/one/two/tmp/one/two/threeOnde este código:
new File("/tmp/one/two/three").mkdir();
não criaria nenhum diretório - como não seria encontrado /tmp/one/two- e retornaria false.
mkdir()
cria apenas um diretório por vez, se for o pai único. caso contrário, ele pode criar o subdiretório (se o caminho especificado existir apenas) e não criar nenhum diretório entre dois diretórios. portanto, ele não pode criar vários diretórios em um diretório
mkdirs()
crie os vários diretórios (entre dois diretórios também) por vez.