javaでファイルの更新日時を変更する

javaでファイルの更新日時を変更する

日次バッチでファイルを作成している。
何の為かはわからないが、ファイルの更新日時をファイル作成日の0時0分0秒にしなくてはならない。
javaバッチなので、その流れでファイルの更新日時も変更する。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/**
 * javac -encoding utf-8 TestFileTime.java
 *
 * java -cp . TestFileTime2
 */

import java.util.Date;
import java.nio.file.Path;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.attribute.FileTime;
import java.text.SimpleDateFormat;
import java.io.Writer;

public class TestFileTime2 {
    public static void main(String[] args) {
        SimpleDateFormat ymd = new SimpleDateFormat("yyyyMMdd");
        String today = ymd.format(new Date());
        Path path = Paths.get(String.format("%s.txt", today));
        try (Writer w = Files.newBufferedWriter(path)) {
            w.write(today);
            w.write("\n");
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
        try {
            FileTime fileTime = FileTime.fromMillis(ymd.parse(today).getTime());
            Files.setLastModifiedTime(path, fileTime);
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
    }
}

まとめ

ここまで作ったものの、javaバッチはshellで起動しているので、
shellでtouchすればよかった。

1
2
3
FILENAME=`date '+%Y%m%d.txt'`
TODAY=`date '+%m%d0000'`
touch -t $TODAY $FILENAME
同じタグの記事
同じカテゴリの記事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA