gpt4 book ai didi

c# - 如何在C#中获取 'Date'文件属性

转载 作者:太空宇宙 更新时间:2023-11-03 23:03:10 26 4
gpt4 key购买 nike

我有一些图片,创建日期设置为我解压它们的时间,修改日期设置为过去某个奇怪的时刻。但是,“日期”属性显示了一个正确的创建时间(我实际拍摄这些照片的时间)。有没有办法在 C# 中访问该属性? File.GetCreationTimeFileInfo.CreationTime 都给我错误的“创建日期”。 enter image description here

这是我尝试过的:

var allFiles = Directory.EnumerateFiles(".");
foreach (var s in allFiles)
{
Console.WriteLine(s + " " + File.GetCreationTime(s));
}

DirectoryInfo dir = new DirectoryInfo(".");
FileInfo[] files = dir.GetFiles().OrderByDescending(p => p.CreationTime).ToArray();

foreach (var f in files)
{
Console.WriteLine(f.Name + " " + f.CreationTime + "/" + f.LastAccessTime + "/" + f.LastWriteTime);
}

编辑:

这个“日期”实际上是一个“拍摄日期”字段,它不是文件属性,而是图像文件元数据的一部分。

最佳答案

试试这个:

public DateTime? GetDateTakenFromBitmap(string bitmapFileName)
{
using (var bm = System.Drawing.Bitmap.FromFile(bitmapFileName))
{
return
bm
.PropertyItems
.Where(x => x.Id == 0x9003)
.Select(x =>
{
DateTime dt;
var enc = new ASCIIEncoding();
var parsed = DateTime.TryParseExact(
enc.GetString(x.Value, 0, x.Len - 1),
"yyyy:MM:dd HH:mm:ss",
CultureInfo.CurrentCulture,
DateTimeStyles.None,
out dt);
return parsed ? (DateTime?)dt : null;
})
.FirstOrDefault();
}
}

关于c# - 如何在C#中获取 'Date'文件属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42335663/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com