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

260*_*602 9 java directory

您好我只是想知道如何在当前用户的主目录下创建一个自定义目录.我已经尝试了这个并且它不起作用......(下面的代码)

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

C:/用户/ "用户"/文件/ 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
};

}
Run Code Online (Sandbox Code Playgroud)

Mad*_*mer 28

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

String path = System.getProperty("user.home") + File.separator + "Documents";
File customDir = new File(path);
Run Code Online (Sandbox Code Playgroud)

其次,使用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
}
Run Code Online (Sandbox Code Playgroud)

更新

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

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");
}
Run Code Online (Sandbox Code Playgroud)

注意,我添加了一个名为Your Custom Folderpath 的附加文件夹;)


Tom*_*Tom 6

请注意,您也可以为此使用 Commons-IO:

File userDirectory = org.apache.commons.io.FileUtils.getUserDirectory();
Run Code Online (Sandbox Code Playgroud)