在Windows资源管理器中,文件有三个日期:“创建日期”、“上次修改日期”和“获取日期?”(在意大利语中,它被称为“数据获取”。这对我来说很重要,因为它是拍摄照片的确切日期(其他两个日期在传输时更改,例如发送压缩文件时)。我知道函数可以获取“创建日期”和“最后修改日期”,但我不知道如何获取“获取日期?”一个文件的。你能帮帮我吗?万事如意,Ovidio Crocicchi
发布于 2015-01-18 21:53:59
您正在尝试获取仅包含在图像文件中的元数据,如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);发布于 2014-09-03 02:30:30
Windows文件有3个文件时间,所有文件都在windows API中公开。
创建日期、修改日期、上次访问日期。
任何其他日期都是扩展属性。
有一些关于通过C#使用.net框架的reading和setting扩展属性的S/O文章。
您还应该能够在资源管理器中右键单击文件,从上下文菜单中选择属性并查看所有扩展属性-- c.f。MS文章Retrieving Extended File Properties
已添加
您提到在复制文件时不会复制这些属性。这是这些扩展属性的一个非常常见的问题,因为许多程序在复制文件时不复制这些扩展属性,因为它们只与文件松散耦合,并且不会在复制文件时自动复制--因此,它们不应该依赖它们来存储重要信息,因此,它们很可能永远得不到很好的支持--因为程序员不会依赖它们来获取重要信息。
根据目标文件系统的不同,可能根本无法复制这些扩展属性。例如,使用FAT32的驱动器(通用于U盘)。
https://stackoverflow.com/questions/25628566
复制相似问题