如何创建目录/文件夹?

一旦我测试了System.getProperty("user.home");

我必须创建一个目录(目录名“新文件夹”)当且仅当新文件夹不存在时。


当前回答

创建单个目录。 新文件(C: \ \ Directory1) .mkdir (); 创建一个名为“Directory2”的目录及其所有子目录“Sub2″”和“Sub-Sub2″”。 新文件(“C: \ \ Directory2 \ \ Sub2 \ \ Sub-Sub2”).mkdirs ()

源码:这个完美的教程,你也找一个使用的例子。

其他回答

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();
       }

    }
}

您可以尝试FileUtils#forceMkdir

FileUtils.forceMkdir("/path/directory");

这个库有很多有用的函数。

Mkdir vs mkdirs


如果要创建单个目录,请使用mkdir

new File("/path/directory").mkdir();

如果想要创建文件夹结构的层次结构,请使用mkdirs

 new File("/path/directory").mkdirs();

下面的方法可以做你想做的事情,只要确保你检查了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();
    }
}

大约7年后,我会将其更新为Bozho建议的更好的方法。

File theDir = new File("/path/directory");
if (!theDir.exists()){
    theDir.mkdirs();
}