如何使用Java在当前用户的主目录中创建文件?

2022-09-03 16:58:52

您好,我只是想知道如何在当前用户的主目录下创建自定义目录。我已经尝试过了,但它不起作用...(代码如下)

我希望它转到此目录并在文档文件夹中创建文件夹

c:/users/“user”/documents/SimpleHTML/

File SimpleHTML = new File("C:/Users/"user"/Documents"); {

//  if the directory does not exist, create it
if (!SimpleHTML.exists()) {
    System.out.println("createing direcotry: " + SimpleHTML);
    boolean result = SimpleHTML.mkdir();

        if(result) {
            System.out.println("Direcotry created!");
        }
}

new simplehtmlEditor() {
    //Calling to Open the Editor
};

}

答案 1

首先,用于获取“用户”目录...System.getProperty("user.home")

String path = System.getProperty("user.home") + File.separator + "Documents";
File customDir = new File(path);

其次,使用 File#mkdirs 而不是 File#mkdir 来确保创建整个路径,因为假设只需要创建最后一个元素mkdir

现在,您可以使用File#exists来检查抽象路径是否存在,如果它不存在File#mkdirs来制作路径的所有部分(忽略那些存在的部分),例如...

if (customDir.exists() || customDir.mkdirs()) {
    // Path either exists or was created
} else {
    // The path could not be created for some reason
}

更新

对可能需要进行的各种检查进行简单细分。前面的示例仅关心路径是否存在,或者可以创建路径。这会分解这些检查,以便您可以看到正在发生的事情...

String path = System.getProperty("user.home") + File.separator + "Documents";
path += File.separator + "Your Custom Folder"
File customDir = new File(path);

if (customDir.exists()) {
    System.out.println(customDir + " already exists");
} else if (customDir.mkdirs()) {
    System.out.println(customDir + " was created");
} else {
    System.out.println(customDir + " was not created");
}

请注意,我已将一个调用到路径;)Your Custom Folder


答案 2

请注意,您也可以使用Commons-IO来实现此目的:

File userDirectory = org.apache.commons.io.FileUtils.getUserDirectory();

推荐