Cómo actualizar la fecha y hora de un archivo usando Java

Las propiedades de fecha y hora de un archivo se pueden establecer mediante el método setAttribute del objeto Files del paquete nio.

Sintaxis:

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

Este ejemplo carga un archivo usando el objeto File. Formatea la fecha y la hora utilizando un SimpleDateFormat con el patrón de fecha definido por el patrón String. Luego, la fecha se convierte en un FileTime usando el valor de milisegundos. La fecha de FileTime se establece como atributos usando la ruta del archivo. La última hora modificada, la última hora de acceso y la hora de creación se establecen utilizando su nombre de atributo en el archivo.

Crea el siguiente archivo 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();
	}

    }

}

El objeto FileTime se crea utilizando los milisegundos de un objeto Date. Es la cantidad de milisegundos desde la época, 1 de enero de 1970 a la medianoche GMT. La instancia de esta clase es inmutable o segura para subprocesos. Una vez creado, o no puede ser modificado por otro hilo. Para establecer un valor diferente, un nuevo Objeto necesita ser instanciado.

Referencias

FileTime
SimpleDateFormat
BasicFileAttributeView

Comentarios Recientes