在Windows资源管理器中,文件有三个日期:“创建日期”,“上次修改日期”和“获取日期?” (在意大利语中,它被称为“数据采集”。对我来说这很重要,因为它是拍摄照片的确切日期(其他两个日期在传输时会发生变化,例如发送压缩文件时)。我知道函数是获取“创建日期”和“最后修改日期”,但我不知道如何获取文件的“获取日期?”。你能帮助我吗?一切顺利,Ovidio Crocicchi
答案 0 :(得分: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);
答案 1 :(得分:0)
Windows文件有3个文件时间,所有文件都在windows API中公开。
创建日期,修改日期,最后访问日期。
任何其他日期都是扩展属性。
使用.net框架通过C#在reading和setting扩展了特性上的S / O文章。
您还应该能够在资源管理器中右键单击文件,从上下文菜单中选择属性并查看所有扩展属性 - c.f. MS文章Retrieving Extended File Properties
ADDED
您提到复制文件时不会复制这些属性。这是这些扩展属性的一个非常常见的问题,因为许多程序在复制文件时不会复制这些扩展属性,因为它们只是松散地耦合到文件,并且不会在复制文件时自动复制 - 因此,它们不应该依靠它们来存储重要信息,因此,它们很可能永远得不到很好的支持 - 因为程序员不会依赖它们获取重要信息。
根据目标文件系统,可能根本无法复制这些扩展属性。例如。使用FAT32驱动器(USB驱动器常见)。