Java - 一時フォルダ(Temp directory)パスを取得する

プログラムが実行されるOSに対応したtemp directoryパスを取得する方法を紹介します。

Temporary directoryは、OSによって異なります。

  • Windows : %USER%\AppData\Local\Temp
  • Linux : /tmp

1. System.getProperty("java.io.tmpdir")

System.getProperty("java.io.tmpdir")はtmp dirパスを返します。

public class GetTempDir {

    public static void main(String[] args) {

        String tempDir = System.getProperty("java.io.tmpdir");

        System.out.println(tempDir);
    }
}

Output:

/tmp

2. File.createTempFile()

File.createTempFile(prefix, suffix)はtmpパスの空のファイルを作成します。

ファイル名はランダムに決定されるが、引数として渡されたprefixとsuffixは固定されており、うち数万ランダムに決まります。

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

public class GetTempDir2 {

    public static void main(String[] args) throws IOException {

        File tempFile = File.createTempFile("test_", ".tmp");
        String tempFilePath = tempFile.getAbsolutePath();
        System.out.println(tempFilePath);
    }
}

Output:

/tmp/test_3225281795536908985.tmp

プログラムが終了されるように、一時ファイルは削除されずに残ります。

プログラムの終了時に、ファイルを削除する

File.deleteOnExit()を呼び出すと、プログラムの終了時にファイルも一緒に削除されます。

File tempFile = File.createTempFile("test_", ".tmp");

tempFile.deleteOnExit();

Related Posts

codechachaCopyright ©2019 codechacha