【问题标题】:how can I create a file in the current user's home directory using Java?如何使用 Java 在当前用户的主目录中创建文件?
【发布时间】:2014-01-30 07:09:01
【问题描述】:

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

我希望它去这个目录并在文档文件夹中创建文件夹

c:/users/“用户”/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
};

}

【问题讨论】:

  • 那是我得到代码的地方,但它对我不起作用......
  • 您有语法错误,File SimpleHTML = new File("C:/Users/"+user+"/Documents"); {,将这些加号添加到 concat 2 字符串中
  • 我刚刚改了代码,仍然没有创建文件夹,甚至结果 println 也没有打印到控制台。
  • @Zeak,如果你想创建文件夹 SimpleHTML 那么它应该是 File SimpleHTML = new File("C:/Users/"+user+"/Documents/SimpleHTML");

标签: java directory


【解决方案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 的附加文件夹;)

【讨论】:

  • 我刚刚对其进行了测试并放置了一个简单的 System.out.println 以查看会发生什么,在控制台上它说它有效,但我在 Documents 中看不到文件夹。
  • 您能否检查一下 File#exists 是否返回 true,因为我想 Documents 已经存在...我会稍微更新一下问题
  • 对不起,我不明白你的意思,因为我确定你知道我对 Java 很陌生。
  • 是的,就是这样,谢谢 MadProgramer!它是在我想要的地方创建的,你帮了我很多,现在我可以继续制作我的程序 :) 现在我知道如何创建目录了
  • 做出了不错的改变(得到有效的东西);)
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 2012-03-21
    • 2013-09-25
    • 2016-07-29
    • 1970-01-01
    • 2012-12-17
    相关资源
    最近更新 更多