如何使用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();