2014-09-02 85 views
2

在Windows資源管理器中,文件有三個日期:「創建日期」,「上次修改日期」和「獲取日期?」。 (在意大利語中,它被稱爲「數據採集」),這對我很重要,因爲它是拍攝照片的確切日期(其他兩個日期在傳輸時發生變化,例如發送壓縮文件時)。獲取「創建日期」和「最後修改日期」,但我不知道如何獲得文件的「購買日期?」。您能幫助我嗎?一切順利,Ovidio Crocicchi文件的獲取日期

+1

它可能存儲在圖片的**元數據**信息。 – 2014-09-02 17:03:35

回答

0

Windows文件有3個文件時間,全部暴露在windows API。

創建日期,修改日期,最後訪問日期。

的任何其他日期是擴展屬性。

readingsetting的S/O文章通過C#使用.net框架擴展了本質。

您還應該能夠右鍵單擊資源管理器中的文件,從上下文菜單中選擇屬性並查看所有擴展屬性 - c.f.在MS文章Retrieving Extended File Properties

ADDED

你提到的是,當文件被複制這些屬性不會被複制。這是這些擴展屬性的一個非常常見的問題,因爲許多程序在複製文件時不復制這些擴展屬性,因爲它們只是鬆散地耦合到文件,並且不會在文件複製時自動複製 - 因此它們不應該依靠它們來存儲重要信息,因此,它們很可能永遠得不到很好的支持 - 因爲程序員不會依賴它們獲取重要信息。

根據目標文件系統,可能根本無法複製這些擴展屬性。例如。使用FAT32的驅動器(通用於USB驅動器)。

1

您正在嘗試獲取僅包含在圖像文件(如JPEG)中的元數據。

我有同樣的問題,我還沒有找到使用標準API的解決方案。最終我使用可以從圖像文件中提取EXIF元數據的metadata-extractor庫來解決問題。該圖書館真的是用戶友好的,這是我使用的代碼:

File file = new File("C:\\myFile.jpg"); 
Metadata metadata = ImageMetadataReader.readMetadata(file); 
Date acquisitionDate = metadata.getDirectory(ExifIFD0Directory.class) 
    .getDate(ExifIFD0Directory.TAG_DATETIME);