Lecture et écriture des dates d'un fichier ou d'un dossier

Contenu du snippet

Ci-dessous, une classe Java offrant la possibilité de lire et de modifier les dates de création, de modification et de dernier accès d'un fichier ou d'un dossier.

package cg.hlegrand;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.attribute.BasicFileAttributeView;
import java.nio.file.attribute.BasicFileAttributes;
import java.nio.file.attribute.FileTime;
import java.util.Calendar;
import java.util.Date;

/**
 * @author H_Le_Grand
 */
 public class CFileDate {

    private static Calendar cal = Calendar.getInstance();
    
    /**
     * Cette fonction permet de définir la date de création d'un fichier ou d'un dossier.
     * @param annee 
     * @param mois 
     * @param jour 
     * @param heure 
     * @param minute 
     * @param seconde  
     * @param file Le fichier ou dossier dont il faut modifier la date de création
     */
    public static void setDateCreation(int annee, int mois, int jour, int heure, int minute, int seconde, File file){
        try {
            Path path = file.toPath();

            cal.set(annee, mois - 1, jour, heure, minute, seconde);

            BasicFileAttributes basicA;

            basicA = Files.readAttributes(path, BasicFileAttributes.class);

            BasicFileAttributeView basic = Files.getFileAttributeView(path, BasicFileAttributeView.class);
            basic.setTimes(basicA.lastModifiedTime(), basicA.lastAccessTime(), FileTime.fromMillis(cal.getTimeInMillis()));
        } catch (IOException e) {
            e.printStackTrace(System.out);
        }
    }

    /**
     * Cette fonction permet de définir la date de modification d'un fichier ou d'un dossier.
     * @param annee
     * @param mois
     * @param jour
     * @param heure
     * @param minute
     * @param seconde
     * @param file Le fichier ou dossier dont il faut modifier la date de modification.
     */
    public static void setDateModification(int annee, int mois, int jour, int heure, int minute, int seconde, File file){
        try {
            Path path = file.toPath();

            cal.set(annee, mois - 1, jour, heure, minute, seconde);

            BasicFileAttributes basicA;

            basicA = Files.readAttributes(path, BasicFileAttributes.class);

            BasicFileAttributeView basic = Files.getFileAttributeView(path, BasicFileAttributeView.class);
            basic.setTimes(FileTime.fromMillis(cal.getTimeInMillis()), basicA.lastAccessTime(), basicA.creationTime());
        } catch (IOException e) {
            e.printStackTrace(System.out);
        }
    }

    /**
     * Cette fonction permet de définir la date de dernier accès d'un fichier ou d'un dossier.
     * @param annee
     * @param mois
     * @param jour
     * @param heure
     * @param minute
     * @param seconde
     * @param file Le fichier ou dossier dont il faut modifier la date de dernier accès.
     */
    public static void setDateDernierAcces(int annee, int mois, int jour, int heure, int minute, int seconde, File file){
        try {
            Path path = file.toPath();

            cal.set(annee, mois - 1, jour, heure, minute, seconde);

            BasicFileAttributes basicA;

            basicA = Files.readAttributes(path, BasicFileAttributes.class);

            BasicFileAttributeView basic = Files.getFileAttributeView(path, BasicFileAttributeView.class);
            basic.setTimes(basicA.lastModifiedTime(), FileTime.fromMillis(cal.getTimeInMillis()), basicA.creationTime());
        } catch (IOException e) {
            e.printStackTrace(System.out);
        }
    }

    /**
     * Cette fonction permet d'obtenir la date de création d'un fichier ou d'un dossier.
     * @param file Le fichier ou dossier dont il faut obtenir la date de création.
     * @return La date de création du fichier ou du dossier donné en paramètre de la méthode.
     */
    public static Date getDateCreation(File file){
        Path path = file.toPath();

        try {
            BasicFileAttributes basic = Files.readAttributes(path, BasicFileAttributes.class);

            cal.setTimeInMillis(basic.creationTime().toMillis());
        } catch (IOException e) {
            e.printStackTrace(System.out);
        }

        return cal.getTime();
    }

    /**
     * Cette fonction permet d'obtenir la date de modification d'un fichier ou d'un dossier.
     * @param file le fichier ou le dossier dont il faut obtenir la date de modification.
     * @return La date de modification du fichier ou du dossier donné en paramètre de la méthode.
     */
    public static Date getDateModification(File file){
        Path path = file.toPath();

        try {
            BasicFileAttributes basic = Files.readAttributes(path, BasicFileAttributes.class);

            cal.setTimeInMillis(basic.lastModifiedTime().toMillis());
        } catch (IOException e) {
            e.printStackTrace(System.out);
        }

        return cal.getTime();
    }

    /**
     * Cette fonction permet d'obtenir la date de dernier accès d'un fichier ou d'un dossier.
     * @param file Le fichier ou le dossier dont il faut obtenir la date de dernier accès.
     * @return La date de modification du fichier ou du dossier donné en paramètre de la méthode.
     */
    public static Date getDateDernierAcces(File file){
        Path path = file.toPath();

        try {
            BasicFileAttributes basic = Files.readAttributes(path, BasicFileAttributes.class);

            cal.setTimeInMillis(basic.lastAccessTime().toMillis());
        } catch (IOException e) {
            e.printStackTrace(System.out);
        }

        return cal.getTime();
    }
}
 

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.