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

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

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


/**
* 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すればよかった。


FILENAME=`date '+%Y%m%d.txt'`
TODAY=`date '+%m%d0000'`
touch -t $TODAY $FILENAME

同じタグの記事
同じカテゴリの記事

コメント

コメントを残す

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

CAPTCHA