Java를 사용하여 파일의 날짜와 시간을 업데이트하는 방법

파일의 날짜 및 시간 속성은 nio 패키지의 Files 객체의 setAttribute 메소드를 사용하여 설정할 수 있습니다.

통사론:

java.nio.file.Files.setAttribute(file.toPath(), "creationTime", time);

이 예제는 File 객체를 사용하여 파일을로드합니다. 패턴 String로 정의 된 일자 패턴을 가지는 SimpleDateFormat를 사용해, 일자와 시각을 포맷합니다. 그런 다음 밀리 초 값을 사용하여 날짜가 FileTime으로 변환됩니다. FileTime 날짜는 파일의 경로를 사용하여 특성으로 설정됩니다. 마지막 수정 시간, 마지막 액세스 시간 및 생성 시간은 파일의 속성 이름을 사용하여 설정됩니다.

다음 java 파일을 만듭니다.

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.attribute.FileTime;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class FileUpdateDate {

    public static void main(String[] argv) {

	File file = new File("V:/tmp/test.txt");

	try {
	    String pattern = "yyyy-MM-dd HH:mm:ss";
	    SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
	    Date timeToSet = simpleDateFormat.parse( "2015-12-01 10:00:00" );

	    FileTime time = FileTime.fromMillis( timeToSet.getTime() );

	    Files.setAttribute(file.toPath(), "lastModifiedTime", time);
	    Files.setAttribute(file.toPath(), "lastAccessTime", time);
	    Files.setAttribute(file.toPath(), "creationTime", time);
	} catch (IOException e) {
	    e.printStackTrace();
	} catch (ParseException e) {
	    e.printStackTrace();
	}

    }

}

FileTime 객체는 Date 객체의 밀리 초를 사용하여 만들어집니다. 1970 년 1 월 1 일부터 GMT까지의 신기원으로부터의 밀리 세컨드 수. 이 클래스의 인스턴스는 변경 불가능하거나 스레드로부터 안전합니다. 일단 생성되었거나 다른 스레드가 수정할 수 없습니다. differente 값을 설정하려면 새 객체를 인스턴스화해야합니다.

참고 문헌 :

FileTime
SimpleDateFormat
BasicFileAttributeView