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

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

我希望它转到此目录并在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 }; } 

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

 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的附加文件Your Custom Folder ;)

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

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