2014-09-02 84 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);