我坚持没有文件夹的事实。

private static File createNewTempDir() {
File baseDir = new File(System.getProperty("java.io.tmpdir"));
String baseNamePrefix = System.currentTimeMillis() + "_" + Math.random() + "-";
LOG.info(System.getProperty("java.io.tmpdir"));
File tempDir = new File(baseDir, baseNamePrefix + "0");
LOG.info(tempDir.getAbsolutePath());

tempDir.mkdirs();

if (tempDir.exists()) {
  LOG.info("I would be happy!");
}
else {
  LOG.info("No folder there");
}
return tempDir;
}


这有什么问题吗?我得到的日志是那里没有文件夹...

最佳答案

您的代码很好,但是您的条件是错误的:

if (tempDir.exists()) {
  LOG.info("I would be happy!");
}
else {
  LOG.info("No folder there");
}


该文件夹确实已创建,您可以通过获取路径并在资源管理器中打开进行检查。

编辑:它至少在Windows上有效。我整理了一下:

   public static void main() {
        File baseDir = new File(System.getProperty("java.io.tmpdir"));
        File tempDir = new File(baseDir, "test0");
        System.err.println(tempDir.getAbsolutePath());

        tempDir.mkdir();

        System.err.println("is it a dir? " + tempDir.isDirectory());
        System.err.println("does it exist? " + tempDir.exists());
    }


输出:


  C:\ Users \ marsch1 \ AppData \ Local \ Temp \ test0
  是目录吗?真正
  是否存在?真正

10-05 21:48