Determina la data di creazione del file in Java

1. Panoramica

JDK 7 ha introdotto la possibilità di ottenere la data di creazione di un file.

In questo tutorial impareremo come accedervi tramite java.nio .

2. Files.getAttribute

Un modo per ottenere la data di creazione di un file è utilizzare il metodo Files.getAttribute con un determinato percorso :

try { FileTime creationTime = (FileTime) Files.getAttribute(path, "creationTime"); } catch (IOException ex) { // handle exception }

Il tipo di creationTime è FileTime , ma a causa del fatto che il metodo restituisce Object, dobbiamo eseguirne il cast .

FileTime contiene il valore della data come attributo timestamp. Ad esempio, può essere convertito in Instant con il metodo toInstant () .

Se il file system non memorizza la data di creazione del file, il metodo restituirà null .

3. Files.readAttributes

Un altro modo per ottenere una data di creazione è con Files.readAttributes che, per un dato Path, restituisce tutti gli attributi di base di un file contemporaneamente:

try { BasicFileAttributes attr = Files.readAttributes(path, BasicFileAttributes.class); FileTime fileTime = attr.creationTime(); } catch (IOException ex) { // handle exception }

Il metodo restituisce un BasicFileAttributes, che possiamo utilizzare per ottenere gli attributi di base di un file. Il metodo creationTime () restituisce la data di creazione del file come FileTime .

Questa volta, se il file system non memorizza la data di creazione di un file, il metodo restituirà la data dell'ultima modifica . Se anche la data dell'ultima modifica non viene memorizzata, verrà restituita l'epoca (01.01.1970).

4. Conclusione

In questo tutorial, abbiamo imparato come determinare la data di creazione del file in Java. Nello specifico, abbiamo imparato che possiamo farlo con Files.getAttribute e Files.readAttributes .

Come sempre, il codice per gli esempi è disponibile su GitHub.