如何创建目录/文件夹?

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

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


当前回答

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

其他回答

只是想向每个调用File.mkdir()或File.mkdirs()的人指出,要小心File对象是目录而不是文件。例如,如果你为路径/dir1/dir2/file.txt调用mkdirs(),它将创建一个名为file.txt的文件夹,这可能不是你想要的。如果你正在创建一个新文件,同时也想自动创建父文件夹,你可以这样做:

            File file = new File(filePath);
            if (file.getParentFile() != null) {
                file.getParentFile().mkdirs();
            }

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

File theDir = new File("/path/directory");
if (!theDir.exists()){
    theDir.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!");
            }
        }

    }
}

这是java的一个吸引力,使用短路或'||',测试目录的存在,并为您制作目录

public File checkAndMakeTheDirectory() {
    File theDirectory = new File("/path/directory");
    if (theDirectory.exists() || theDirectory.mkdirs())
        System.out.println("The folder has been created or has been already there");
    return theDirectory;
}

如果If的第一部分为真,它不会运行第二部分,如果第一部分为假,它也会运行第二部分

这种方式为我做一个单一的目录或更多或他们: 需要导入java.io.File; /*输入下面的代码添加目录dir1或检查是否存在dir1,如果不存在,则创建dir2和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");  }