【问题标题】:Java make directory but not fileJava制作目录而不是文件
【发布时间】:2025-03-05 07:50:02
【问题描述】:

下面的代码会在文件夹中创建文件

  File f = new File(path);
    if(!f.exists())
       f.mkdirs();

,但我只想创建目录,因为在此之后我使用此代码

file.transferTo(new File(path));

Multipart 文件 保存到同一位置,但由于已经存在文件而引发错误。有没有办法只创建没有文件的文件夹? 一个解决方案是删除第一个文件,但寻找更好的解决方案

编辑:

File f = new File(path);

这一行创建文件夹和文件,它不应该。我使用 java 8 和 IntelliJ 14

解决方案:

问题在于 Intellij 或 Intellij 调试手表。重新启动它并清除手表后:

new File(path) file.transferTo(new File(path)) f.exists() 代码开始工作。

【问题讨论】:

  • f.mkdirs() 从不制作文件,只制作文件夹。
  • 或仅f.mkdir()
  • @MarkJeronimus File f=new File(path);这条线成功了,也创建了目录,我使用 java 8 和 Intellij
  • 不,它没有。这只会在内存中创建一个Filemkdirs() 创建目录。
  • @EJP 应该,但我调试它,在这一行我得到文件夹和文件,在 f.exists() 上我得到了真实,现在测试了 10 次......

标签: java file mkdir mkdirs


【解决方案1】:

应该是

f.getParentFile().mkdirs();

您无需事先检查是否存在:mkdirs() 已经这样做了。

【讨论】:

  • 注意:如果你的文件路径没有命名父目录,getParentFile()getParent()会返回null,如果调用代码没有处理可能会导致NullPointerException。
  • @EJP 这是 intellij 问题,但我接受你的回答,因为它回答了标题。
【解决方案2】:
File dir = new File("<Your_Path>/TestDirectory");

    // attempt to create the directory here
    boolean successful = dir.mkdir();
    if (successful)
    {
      // creating the directory succeeded
      System.out.println("directory was created successfully");
    }
    else
    {
      // creating the directory failed
      System.out.println("failed trying to create the directory");
    }

从那时起,您可以在目录路径中创建文件....

【讨论】: