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