Metadata
This commit is contained in:
@ -54,14 +54,26 @@ internal abstract class XDate
|
||||
{
|
||||
DateTime? result;
|
||||
List<DateTime> results = [];
|
||||
if (exifDirectory.ExifDirectoryBase.DateTimeOriginal is not null)
|
||||
results.Add(exifDirectory.ExifDirectoryBase.DateTimeOriginal.Value);
|
||||
if (exifDirectory.AviDirectory.DateTimeOriginal is not null)
|
||||
results.Add(exifDirectory.AviDirectory.DateTimeOriginal.Value);
|
||||
if (exifDirectory.QuickTimeMovieHeaderDirectory.Created is not null)
|
||||
results.Add(exifDirectory.QuickTimeMovieHeaderDirectory.Created.Value);
|
||||
if (exifDirectory.QuickTimeTrackHeaderDirectory.Created is not null)
|
||||
results.Add(exifDirectory.QuickTimeTrackHeaderDirectory.Created.Value);
|
||||
foreach (ExifDirectoryBase exifDirectoryBase in exifDirectory.ExifBaseDirectories)
|
||||
{
|
||||
if (exifDirectoryBase.DateTimeOriginal is not null)
|
||||
results.Add(exifDirectoryBase.DateTimeOriginal.Value);
|
||||
}
|
||||
foreach (AviDirectory aviDirectory in exifDirectory.AviDirectories)
|
||||
{
|
||||
if (aviDirectory.DateTimeOriginal is not null)
|
||||
results.Add(aviDirectory.DateTimeOriginal.Value);
|
||||
}
|
||||
foreach (QuickTimeMovieHeaderDirectory quickTimeMovieHeaderDirectory in exifDirectory.QuickTimeMovieHeaderDirectories)
|
||||
{
|
||||
if (quickTimeMovieHeaderDirectory.Created is not null)
|
||||
results.Add(quickTimeMovieHeaderDirectory.Created.Value);
|
||||
}
|
||||
foreach (QuickTimeTrackHeaderDirectory quickTimeTrackHeaderDirectory in exifDirectory.QuickTimeTrackHeaderDirectories)
|
||||
{
|
||||
if (quickTimeTrackHeaderDirectory.Created is not null)
|
||||
results.Add(quickTimeTrackHeaderDirectory.Created.Value);
|
||||
}
|
||||
result = results.Count == 0 ? null : results.Min();
|
||||
return result;
|
||||
}
|
||||
@ -121,27 +133,48 @@ internal abstract class XDate
|
||||
{
|
||||
DateTime result;
|
||||
List<DateTime> results = [];
|
||||
if (exifDirectory.ExifDirectoryBase.DateTimeOriginal is not null)
|
||||
results.Add(exifDirectory.ExifDirectoryBase.DateTimeOriginal.Value);
|
||||
if (exifDirectory.AviDirectory.DateTimeOriginal is not null)
|
||||
results.Add(exifDirectory.AviDirectory.DateTimeOriginal.Value);
|
||||
if (exifDirectory.QuickTimeMovieHeaderDirectory.Created is not null)
|
||||
results.Add(exifDirectory.QuickTimeMovieHeaderDirectory.Created.Value);
|
||||
if (exifDirectory.QuickTimeTrackHeaderDirectory.Created is not null)
|
||||
results.Add(exifDirectory.QuickTimeTrackHeaderDirectory.Created.Value);
|
||||
foreach (ExifDirectoryBase exifDirectoryBase in exifDirectory.ExifBaseDirectories)
|
||||
{
|
||||
if (exifDirectoryBase.DateTimeOriginal is not null)
|
||||
results.Add(exifDirectoryBase.DateTimeOriginal.Value);
|
||||
}
|
||||
foreach (AviDirectory aviDirectory in exifDirectory.AviDirectories)
|
||||
{
|
||||
if (aviDirectory.DateTimeOriginal is not null)
|
||||
results.Add(aviDirectory.DateTimeOriginal.Value);
|
||||
}
|
||||
foreach (QuickTimeMovieHeaderDirectory quickTimeMovieHeaderDirectory in exifDirectory.QuickTimeMovieHeaderDirectories)
|
||||
{
|
||||
if (quickTimeMovieHeaderDirectory.Created is not null)
|
||||
results.Add(quickTimeMovieHeaderDirectory.Created.Value);
|
||||
}
|
||||
foreach (QuickTimeTrackHeaderDirectory quickTimeTrackHeaderDirectory in exifDirectory.QuickTimeTrackHeaderDirectories)
|
||||
{
|
||||
if (quickTimeTrackHeaderDirectory.Created is not null)
|
||||
results.Add(quickTimeTrackHeaderDirectory.Created.Value);
|
||||
}
|
||||
if (results.Count == 0)
|
||||
{
|
||||
string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(exifDirectory.OriginalFileName);
|
||||
DateTime? dateTime = GetDateTimeFromName(fileNameWithoutExtension);
|
||||
if (dateTime is not null)
|
||||
results.Add(dateTime.Value);
|
||||
if (exifDirectory.ExifDirectoryBase.DateTime is not null)
|
||||
results.Add(exifDirectory.ExifDirectoryBase.DateTime.Value);
|
||||
if (exifDirectory.ExifDirectoryBase.DateTimeDigitized is not null)
|
||||
results.Add(exifDirectory.ExifDirectoryBase.DateTimeDigitized.Value);
|
||||
foreach (ExifDirectoryBase exifDirectoryBase in exifDirectory.ExifBaseDirectories)
|
||||
{
|
||||
if (exifDirectoryBase.DateTime is not null)
|
||||
results.Add(exifDirectoryBase.DateTime.Value);
|
||||
if (exifDirectoryBase.DateTimeDigitized is not null)
|
||||
results.Add(exifDirectoryBase.DateTimeDigitized.Value);
|
||||
}
|
||||
}
|
||||
if (results.Count == 0)
|
||||
{
|
||||
foreach (FileMetadataDirectory fileMetadataDirectory in exifDirectory.FileMetadataDirectories)
|
||||
{
|
||||
if (fileMetadataDirectory.FileModifiedDate is not null)
|
||||
results.Add(fileMetadataDirectory.FileModifiedDate.Value);
|
||||
}
|
||||
}
|
||||
if (results.Count == 0 && exifDirectory.FileMetadataDirectory.FileModifiedDate is not null)
|
||||
results.Add(exifDirectory.FileMetadataDirectory.FileModifiedDate.Value);
|
||||
result = results.Count == 0 ? DateTime.MinValue : results.Min();
|
||||
return result;
|
||||
}
|
||||
|
Reference in New Issue
Block a user