6

我需要创建一个临时文件夹,我可以在其中放置一些临时文件进行处理。我不确定在执行我的应用程序 jar 的文件夹中是否具有读/写访问权限。

  1. 最好在系统的临时目录中创建临时文件夹吗?
  2. 当我使用File tempFolder = File.createTempFile("fooo","");Where is the folder created 时?当我 cd 进入我的 mac 中的临时文件夹时,我无法看到名为 fooo 的文件夹。
4

4 回答 4

6

您几乎完成了创建临时文件夹,请参见:

import java.io.File;
import java.io.IOException;

public class TempFolder {
    public static void main(String[] args) throws IOException {
        File file = File.createTempFile("my_prefix", "");
        System.out.println(file.getAbsolutePath() + " isFile: " + file.isFile() + " isDir:" + file.isDirectory());
        file.delete();
        file.mkdir();
        System.out.println(file.getAbsolutePath() + " isFile: " + file.isFile() + " isDir:" + file.isDirectory());
    }
}

首先 createTempFile 将为您创建一个真实的文件,只需将其删除并使用相同的名称创建一个目录。

我也用 osx。我的结果是:

/var/folders/aQ/aQLNlFLOF28xewK2A7i0X++++TM/-Tmp-/my_prefix8720723534029791962 isFile: true isDir:false
/var/folders/aQ/aQLNlFLOF28xewK2A7i0X++++TM/-Tmp-/my_prefix8720723534029791962 isFile: false isDir:true
于 2012-10-25T12:45:57.893 回答
3

你应该使用File.createTempFile().

创建它的位置取决于您的环境。如果您有兴趣,请尝试打印出此类文件的完整路径。

在我的 Mac (10.8.2) 上,系统 Java 刚刚在“/var/folders/qj/v2cqt0t91h1b4rzj1s0pc_780000gp/T/”中创建了一个文件。

于 2012-10-25T12:41:00.327 回答
3

当您调用File tempFolder = File.createTempFile("fooo","")它时,它将返回一个 File 对象。然后你可以打电话

tempFolder.getAbsolutePath();

链接在这里

这将为您提供位置。我猜我会说它在 /tmp/ 中,你可以从 Finder 中进入

  • 选择转到文件夹
  • 从 Go 菜单类型 /tmp/

这会将您带到隐藏的文件夹。

我知道在 Windows 中,您可以在 Windows 资源管理器地址栏中键入 %temp% 以将您带到临时目录。我不确定 OSX 上是否有类似的东西

于 2012-10-25T12:42:27.413 回答
1

尝试打印出 tempFolder.getAbsolutePath()。它应该为您提供创建此文件夹的路径。

于 2012-10-25T12:44:45.827 回答