Como criar um diretório em Java?
Como é que crio a pasta/pasta?
Uma vez que eu tenha testado System.getProperty("user.home");
Tenho de criar uma pasta (nome de pasta "nova pasta" ) se e apenas se a nova pasta não existir.
18 answers
Depois de ~7 anos, vou atualizá-lo para uma melhor abordagem, o que é sugerido por Bozho.
new File("/path/directory").mkdirs();
Depreciado:
File theDir = new File("new folder");
// if the directory does not exist, create it
if (!theDir.exists()) {
System.out.println("creating directory: " + theDir.getName());
boolean result = false;
try{
theDir.mkdir();
result = true;
}
catch(SecurityException se){
//handle it
}
if(result) {
System.out.println("DIR created");
}
}
new File("/path/directory").mkdirs();
Aqui "directory" é o nome da pasta que deseja criar/existir.
Com Java 7, você pode usar Files.createDirectories()
.
Por exemplo:
Files.createDirectories(Paths.get("/path/to/directory"));
Podes tentar FileUtils#forceMkdir
FileUtils.forceMkdir("/path/directory");
Esta biblioteca tem muitas funções úteis.
Mkdir vs mkdirs
Se quiser criar uma única pasta use mkdir
new File("/path/directory").mkdir();
Se quiser criar uma hierarquia de Utilização da estrutura de pastasmkdirs
new File("/path/directory").mkdirs();
O seguinte método deve fazer o que quiser, apenas certifique-se que está a verificar o valor de retorno de mkdir() / mkdirs()
private void createUserDir(final String dirName) throws IOException {
final File homeDir = new File(System.getProperty("user.home"));
final File dir = new File(homeDir, dirName);
if (!dir.exists() && !dir.mkdirs()) {
throw new IOException("Unable to create " + dir.getAbsolutePath();
}
}
Para java 7 e para cima:
Path path = Paths.get("/your/path/string");
if(!Files.exists(path)) {
try {
Files.createDirectories(path);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void makeDir()
{
File directory = new File(" dirname ");
if (directory.exists() && directory.isFile())
{
System.out.println("The dir with name could not be" +
" created as it is a normal file");
}
else
{
try
{
if (!directory.exists())
{
directory.mkdir();
}
String username = System.getProperty("user.name");
String filename = " path/" + username + ".txt"; //extension if you need one
}
catch (IOException e)
{
System.out.println("prompt for error");
}
}
}
Só queria apontar para todos que chamam File.mkdir()
ou File.mkdirs()
para ter cuidado o objecto File
é um directório e não um ficheiro. Por exemplo, se você chamar mkdirs()
para o caminho /dir1/dir2/file.txt
, ele irá criar uma pasta com o nome file.txt
que provavelmente não é o que você queria. Se estiver a criar um ficheiro novo e também quiser criar automaticamente as pastas-mãe, poderá fazer algo do género:
File file = new File(filePath);
if (file.getParentFile() != null) {
file.getParentFile().mkdirs();
}
import java.io.File;
public class RevCreateDirectory {
public void revCreateDirectory() {
//To create single directory/folder
File file = new File("D:\\Directory1");
if (!file.exists()) {
if (file.mkdir()) {
System.out.println("Directory is created!");
} else {
System.out.println("Failed to create directory!");
}
}
//To create multiple directories/folders
File files = new File("D:\\Directory2\\Sub2\\Sub-Sub2");
if (!files.exists()) {
if (files.mkdirs()) {
System.out.println("Multiple directories are created!");
} else {
System.out.println("Failed to create multiple directories!");
}
}
}
}
import java.io.File;
public class MakingDirectory {
public static void main(String[] args) {
String s="d:\\msreddy\\sample1";
File file=new File(s);
file.mkdirs();
}
}
Para mais informações Ver isto.
Bem, para criar directório/pasta em java temos dois métodos
Aqui o método makedirectory cria uma única pasta se não existir.
File dir = new File("path name");
boolean isCreated = dir.mkdir();
E
File dir = new File("path name");
boolean isCreated = dir.mkdirs();
Aqui o método makedirectories irá criar todas as pastas que faltam na localização que o objecto de ficheiro representa.
Por exemplo, consulte a ligação abaixo (explicada muito bem). Espero que ajude!! http://www.flowerbrackets.com/create-directory-java-program/
/*introduza o código abaixo para adicionar uma dir1 diectorial ou verifique se existe dir1, se não existir, então crie-o e o mesmo com dir2 e dir3 * /
File filed = new File("C:\\dir1");
if(!filed.exists()){ if(filed.mkdir()){ System.out.println("directory is created"); }} else{ System.out.println("directory exist"); }
File filel = new File("C:\\dir1\\dir2");
if(!filel.exists()){ if(filel.mkdir()){ System.out.println("directory is created"); }} else{ System.out.println("directory exist"); }
File filet = new File("C:\\dir1\\dir2\\dir3");
if(!filet.exists()){ if(filet.mkdir()){ System.out.println("directory is created"); }} else{ System.out.println("directory exist"); }
Esta função permite-lhe criar uma pasta na pasta pessoal do utilizador.
private static void createDirectory(final String directoryName) {
final File homeDirectory = new File(System.getProperty("user.home"));
final File newDirectory = new File(homeDirectory, directoryName);
if(!newDirectory.exists()) {
boolean result = newDirectory.mkdir();
if(result) {
System.out.println("The directory is created !");
}
} else {
System.out.println("The directory already exist");
}
}
Se queres ter a certeza que foi criado, então isto:
final String path = "target/logs/";
final File logsDir = new File(path);
final boolean logsDirCreated = logsDir.mkdir();
if (!logsDirCreated) {
final boolean logsDirExists = logsDir.exists();
assertThat(logsDirExists).isTrue();
}
O Beacuse mkDir()
devolve um booleano, e o findbugs irá chorar por ele se não usar a variável. Também não é agradável...
mkDir()
só devolve verdadeiro se mkDir()
O criar.
Se a pasta existir, devolve falso, de modo a verificar a pasta que criou, apenas ligue para exists()
se mkDir()
devolve falso.
assertThat()
irá verificar o resultado e falhar se exists()
devolve falso. ofc você pode usar outras coisas para lidar com o não tratado Directorio.
public class Test1 {
public static void main(String[] args)
{
String path = System.getProperty("user.home");
File dir=new File(path+"/new folder");
if(dir.exists()){
System.out.println("A folder with name 'new folder' is already exist in the path "+path);
}else{
dir.mkdir();
}
}
}