在Java中创建临时文件夹

6

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

  1. 最好在系统的临时目录中创建临时文件夹吗?
  2. 当我使用 File tempFolder = File.createTempFile("fooo","");时,文件夹会被创建在哪里?当我在我的Mac上进入临时文件夹时,我看不到名为fooo的文件夹。
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

3
当您调用File tempFolder = File.createTempFile("fooo","")时,它会返回一个文件对象。然后您可以调用:
tempFolder.getAbsolutePath();

点击此处可以查看相关链接,这将会给出文件的位置。我猜测它可能在/tmp/目录下,你可以通过Finder访问到该目录:

  • 选择“前往文件夹”
  • 在“前往”菜单中输入 /tmp/

这将带你进入隐藏的文件夹。

我知道在Windows中,你可以在Windows资源管理器地址栏中键入 %temp% 来进入临时文件夹。我不确定OSX上是否有类似的方法。


3
你应该使用 File.createTempFile() 函数来创建临时文件。
这个函数会根据你的环境决定在哪里创建临时文件。如果你有兴趣,可以尝试打印出这个文件的完整路径。
在我的 Mac (10.8.2) 上,系统 Java 刚刚在 "/var/folders/qj/v2cqt0t91h1b4rzj1s0pc_780000gp/T/" 创建了一个文件。

1
尝试打印tempFolder.getAbsolutePath()。它应该会给你这个文件夹被创建的路径。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接