Comment obtenir la date de création du fichier en Java

Comment obtenir la date de création du fichier en Java

Il n'existe aucun moyen officiel d'obtenir la date de création du fichier en Java. Cependant, vous pouvez utiliser la solution de contournement suivante pour obtenir la date de création du fichier sur la plate-forme Windows.

Comment ça marche

Dans l'invite de commande Windows, tapez la commande pour répertorier la date de création du fichier.

C:\>cmd /c dir c:\logfile.log /tc
 Volume in drive C has no label.
 Volume Serial Number is 0410-1EC3

 Directory of c:\

31/05/2010  08:05                14 logfile.log
               1 File(s)             14 bytes
               0 Dir(s)  35,389,460,480 bytes free

Le «31/05/2010 08:05» est ce dont vous avez besoin. L'idée est d'utiliser le Java «Runtime.getRuntime().exec» pour exécuter la commande ci-dessus, conserver la sortie et l'analyser par lignes jusqu'à ce que vous obteniez la date et l'heure.

Exemple

Dans cet exemple, il obtiendra la date de création du fichier (c: \ logfile.log).

package com.example.file;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class GetFileCreationDateExample
{
    public static void main(String[] args)
    {

        try{

            Process proc =
               Runtime.getRuntime().exec("cmd /c dir c:\\logfile.log /tc");

            BufferedReader br =
               new BufferedReader(
                  new InputStreamReader(proc.getInputStream()));

            String data ="";

            //it's quite stupid but work
            for(int i=0; i<6; i++){
                data = br.readLine();
            }

            System.out.println("Extracted value : " + data);

            //split by space
            StringTokenizer st = new StringTokenizer(data);
            String date = st.nextToken();//Get date
            String time = st.nextToken();//Get time

            System.out.println("Creation Date  : " + date);
            System.out.println("Creation Time  : " + time);

        }catch(IOException e){

            e.printStackTrace();

        }

    }
}

Résultat

Extracted value : 31/05/2010  08:05  14 logfile.log
Creation Date  : 31/05/2010
Creation Time  : 08:05