การคืนค่าวันที่สร้างไฟล์ใน Java

Java IO (1.6) ยังไม่มีแนวทางที่จะคืนค่าวันที่สร้างของไฟล์แบบทางการ อย่างไรก็ตามเราสามารถใช้วิธีการแบบลูกทุ่งเพื่อจะหาค่าวันที่สร้างไฟล์ได้ ในที่นี้เราใช้ window เป็นตัวอย่างในการทดสอบนะครับ (เพราะ *nix ไม่เก็บวันที่สร้างของไฟล์ครับส่วนใหญ่จะเก็บแต่วันที่แก้ไขล่าสุด). ใน Windows ให้เปิด command prompt ขึ้นมาแล้วลองพิมพ์คำสั่งดูครับ.
C:\>cmd /c dir C:\\users\\nopphanan7\\newfile.txt /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
ตัว "31/05/2010 08:05" คือตัวที่เราต้องการครับ เพราะฉะนั้นเพื่อที่เราจะสามารรันคำสั่งดังกล่าวได้เราเลยต้องใช้ตัว "Runtime.getRuntime().exec()" ในการรันคำสั่งครับ.
ตัวอย่าง
ในตัวอย่างต่อไปนี้เราจะทำการคืนค่าวันที่ของไฟล์ (C:\\users\\nopphanan7\\newfile.txt) ครับ ถึงวิธีการอาจจะดูแบบลูกทุ่งไปหน่อย แต่ก็ใช้ได้ครับ.
package demo.file;

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

public class GetFileCreationDateExample {

    /**
     * @param args
     */
    public static void main(String[] args) {
        try {
            Process proc = Runtime.getRuntime().exec("cmd /c dir C:\\users\\nopphanan7\\newfile.txt /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);
        } catch (IOException e) {

            e.printStackTrace();

        }

    }

}
ผลลัพธ์ที่ได้คือ
Extracted value : 05/17/2014  17:11                 0 newfile.txt

About Nop

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment

0 comments:

Post a Comment