-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProgram.cs
More file actions
131 lines (109 loc) · 5.38 KB
/
Program.cs
File metadata and controls
131 lines (109 loc) · 5.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
using System;
using System.IO;
using System.Linq;
using MediadataServices;
using MediadataServices.Helpers;
using MediadataServices.MediadataHelpers;
using File = System.IO.File;
namespace MetadataFromFilename
{
public class Program
{
private static void Main(string[] args)
{
Console.WriteLine("Arguments available:");
OutputHelpers.WriteColumns(new[] { "/v", "Verbose output (more information about each file" });
// User defined settings
var settingVerbose = false;
foreach (var arg in args)
{
if (arg.ToLower().Contains("/v"))
{
settingVerbose = true;
}
}
// Print column headers
Console.WriteLine();
OutputHelpers.WriteColumns(new[] { "EXISTING FILENAME", "NEW FILENAME", "DATE SOURCE" });
Console.WriteLine();
var filePaths = Directory.GetFiles(Directory.GetCurrentDirectory());
foreach (var filePath in filePaths.Where(File.Exists))
{
var fileName = Path.GetFileName(filePath);
if (string.IsNullOrEmpty(fileName))
{
continue;
}
var fileExtension = Path.GetExtension(fileName).ToLower();
if (!FiletypeHelpers.IsAllowedFileType(fileExtension))
{
continue;
}
// Get XMP metadata with taglib
var xmpDateCreated = XmpHelpers.GetXmpDateCreated(fileName);
// Get video metadata with MediaInfoLib
var mediaInfoEncodedDate = MediaInfoHelpers.GetMediaInfoEncodedDate(fileName);
var mediaInfoMasteredDate = MediaInfoHelpers.GetMediaInfoMasteredDate(fileName);
// Get EXIF metadata with ExifReader
var exifDateDigitized = ExifHelpers.GetExifDateDigitized(fileName);
var exifDateOriginal = ExifHelpers.GetExifDateTaken(fileName);
// Define new filename
var newFileName = fileName;
var nameSource = "Original filename";
// Print date found in existing filename
var fileNameDate = fileName.ConvertToDateTime();
if (fileNameDate != new DateTime())
{
newFileName = fileNameDate.ToString(Settings.DateFormat) + fileExtension;
nameSource = "Date from filename";
//OutputHelpers.WriteColumns(new[] { "Date from filename:", newFileName });
}
// Print date found in XMP DateCreated property
if (xmpDateCreated != new DateTime())
{
newFileName = xmpDateCreated.ToString(Settings.DateFormat) + fileExtension;
nameSource = "XMP DateCreated";
//OutputHelpers.WriteColumns(new[] { "XMP DateCreated:", newFileName });
}
// Print date found in MediaInfo Encoded_Date property
if (mediaInfoEncodedDate != new DateTime())
{
newFileName = mediaInfoEncodedDate.ToString(Settings.DateFormat) + fileExtension;
nameSource = "Encoded_Date";
//OutputHelpers.WriteColumns(new[] { "MediaInfo Encoded_Date:", newFileName });
}
// Print date found in MediaInfo Mastered_Date property
if (mediaInfoMasteredDate != new DateTime())
{
newFileName = mediaInfoMasteredDate.ToString(Settings.DateFormat) + fileExtension;
nameSource = "Mastered_Date";
//OutputHelpers.WriteColumns(new[] { "MediaInfo Mastered_Date:", newFileName });
}
// Print date found in EXIF Date Digitized property
if (exifDateDigitized != new DateTime())
{
newFileName = exifDateDigitized.ToString(Settings.DateFormat) + fileExtension;
nameSource = "EXIF DateDigitized";
//OutputHelpers.WriteColumns(new[] { "EXIF DateDigitized:", newFileName });
}
// Print date found in EXIF Date Original property
if (exifDateOriginal != new DateTime())
{
newFileName = exifDateOriginal.ToString(Settings.DateFormat) + fileExtension;
nameSource = "EXIF DateOriginal";
//OutputHelpers.WriteColumns(new[] { "EXIF DateOriginal:", newFileName });
}
OutputHelpers.WriteColumns(new[] { fileName, newFileName, nameSource });
// Print date found in File modified property
//var fileModified = File.GetLastWriteTime(fileName);
//OutputHelpers.WriteColumns(new[] { "File modified:", fileModified.ToString(Settings.DateFormat) });
// Print date found in File created property
//var fileCreated = File.GetCreationTime(fileName);
//OutputHelpers.WriteColumns(new[] { "File created:", fileCreated.ToString(Settings.DateFormat) });
}
//Console.WriteLine();
//Console.WriteLine("Press any key to exit application...");
//Console.Read();
}
}
}