diff --git a/SabreTools.Library/DatFiles/DatFile.cs b/SabreTools.Library/DatFiles/DatFile.cs index 0c8e17f2..496d84fc 100644 --- a/SabreTools.Library/DatFiles/DatFile.cs +++ b/SabreTools.Library/DatFiles/DatFile.cs @@ -1973,7 +1973,6 @@ namespace SabreTools.Library.DatFiles /// TreatAsFiles representing CHD and Archive scanning /// Type of files that should be skipped /// True if blank items should be created for empty folders, false otherwise - /// True if dates should be archived for all files, false otherwise /// Output directory to /// True if archive header should be used, false otherwise public bool PopulateFromDir( @@ -1981,7 +1980,6 @@ namespace SabreTools.Library.DatFiles TreatAsFile asFiles = 0x00, SkipFileType skipFileType = SkipFileType.None, bool addBlanks = false, - bool addDate = false, bool quickScan = false) { // Clean the temp directory path @@ -1996,7 +1994,7 @@ namespace SabreTools.Library.DatFiles List files = Directory.EnumerateFiles(basePath, "*", SearchOption.AllDirectories).ToList(); Parallel.ForEach(files, Globals.ParallelOptions, item => { - CheckFileForHashes(item, basePath, asFiles, skipFileType, addBlanks, addDate, quickScan); + CheckFileForHashes(item, basePath, asFiles, skipFileType, addBlanks, quickScan); }); // Now find all folders that are empty, if we are supposed to @@ -2043,7 +2041,6 @@ namespace SabreTools.Library.DatFiles asFiles, skipFileType, addBlanks, - addDate, quickScan); } @@ -2064,7 +2061,6 @@ namespace SabreTools.Library.DatFiles /// TreatAsFiles representing CHD and Archive scanning /// Type of files that should be skipped /// True if blank items should be created for empty folders, false otherwise - /// True if dates should be archived for all files, false otherwise /// True if archive header should be used, false otherwise private void CheckFileForHashes( string item, @@ -2072,7 +2068,6 @@ namespace SabreTools.Library.DatFiles TreatAsFile asFiles, SkipFileType skipFileType, bool addBlanks, - bool addDate, bool quickScan) { // If we're in depot mode, process it separately @@ -2085,7 +2080,7 @@ namespace SabreTools.Library.DatFiles // If we have an archive and we're supposed to scan it if (archive != null && !asFiles.HasFlag(TreatAsFile.Archive)) - extracted = archive.GetChildren(date: addDate); + extracted = archive.GetChildren(); // If the file should be skipped based on type, do so now if ((extracted != null && skipFileType == SkipFileType.Archive) @@ -2096,7 +2091,7 @@ namespace SabreTools.Library.DatFiles // If the extracted list is null, just scan the item itself if (extracted == null) - ProcessFile(item, basePath, addDate, asFiles); + ProcessFile(item, basePath, asFiles); // Otherwise, add all of the found items else @@ -2179,12 +2174,11 @@ namespace SabreTools.Library.DatFiles /// /// File to be added /// Path the represents the parent directory - /// True if dates should be archived for all files, false otherwise /// TreatAsFiles representing CHD and Archive scanning - private void ProcessFile(string item, string basePath, bool addDate, TreatAsFile asFiles) + private void ProcessFile(string item, string basePath, TreatAsFile asFiles) { Globals.Logger.Verbose($"'{Path.GetFileName(item)}' treated like a file"); - BaseFile baseFile = FileExtensions.GetInfo(item, addDate, Header.HeaderSkipper, asFiles); + BaseFile baseFile = FileExtensions.GetInfo(item, date: true, header: Header.HeaderSkipper, asFiles: asFiles); DatItem datItem = DatItem.Create(baseFile); ProcessFileHelper(item, datItem, basePath, string.Empty); } @@ -2576,7 +2570,7 @@ namespace SabreTools.Library.DatFiles // Now get all extracted items from the archive if (archive != null) - entries = archive.GetChildren(date: date); + entries = archive.GetChildren(); // If the entries list is null, we encountered an error or have a file and should scan externally if (entries == null && File.Exists(file)) diff --git a/SabreTools.Library/FileTypes/BaseArchive.cs b/SabreTools.Library/FileTypes/BaseArchive.cs index 0d0e1d46..af504f3f 100644 --- a/SabreTools.Library/FileTypes/BaseArchive.cs +++ b/SabreTools.Library/FileTypes/BaseArchive.cs @@ -153,10 +153,8 @@ namespace SabreTools.Library.FileTypes /// /// Generate a list of DatItem objects from the header values in an archive /// - /// True if entry dates should be included, false otherwise (default) /// List of DatItem objects representing the found data - /// TODO: All instances of Hash.DeepHashes should be made into 0x0 eventually - public override abstract List GetChildren(bool date = false); + public override abstract List GetChildren(); /// /// Generate a list of empty folders in an archive diff --git a/SabreTools.Library/FileTypes/Folder.cs b/SabreTools.Library/FileTypes/Folder.cs index ebb839da..1b7d9a37 100644 --- a/SabreTools.Library/FileTypes/Folder.cs +++ b/SabreTools.Library/FileTypes/Folder.cs @@ -256,16 +256,15 @@ namespace SabreTools.Library.FileTypes /// /// Generate a list of immediate children from the current folder /// - /// True if entry dates should be included, false otherwise (default) /// List of BaseFile objects representing the found data - public virtual List GetChildren(bool date = false) + public virtual List GetChildren() { if (_children == null || _children.Count == 0) { _children = new List(); foreach (string file in Directory.EnumerateFiles(this.Filename, "*", SearchOption.TopDirectoryOnly)) { - BaseFile nf = FileExtensions.GetInfo(file, date: date); + BaseFile nf = FileExtensions.GetInfo(file); _children.Add(nf); } diff --git a/SabreTools.Library/FileTypes/GZipArchive.cs b/SabreTools.Library/FileTypes/GZipArchive.cs index c78c3dbe..07b39174 100644 --- a/SabreTools.Library/FileTypes/GZipArchive.cs +++ b/SabreTools.Library/FileTypes/GZipArchive.cs @@ -5,7 +5,6 @@ using System.Linq; using System.Text.RegularExpressions; using SabreTools.Library.Data; -using SabreTools.Library.DatFiles; using SabreTools.Library.DatItems; using SabreTools.Library.IO; using SabreTools.Library.Tools; @@ -189,10 +188,8 @@ namespace SabreTools.Library.FileTypes /// /// Generate a list of DatItem objects from the header values in an archive /// - /// True if entry dates should be included, false otherwise (default) /// List of DatItem objects representing the found data - /// TODO: All instances of Hash.DeepHashes should be made into 0x0 eventually - public override List GetChildren(bool date = false) + public override List GetChildren() { if (_children == null || _children.Count == 0) { @@ -235,7 +232,7 @@ namespace SabreTools.Library.FileTypes BaseFile gzipEntryRom = gzstream.GetInfo(); gzipEntryRom.Filename = gz.Filename(0); gzipEntryRom.Parent = gamename; - gzipEntryRom.Date = (date && gz.TimeStamp > 0 ? gz.TimeStamp.ToString() : null); + gzipEntryRom.Date = (gz.TimeStamp > 0 ? gz.TimeStamp.ToString() : null); _children.Add(gzipEntryRom); gzstream.Dispose(); } diff --git a/SabreTools.Library/FileTypes/LRZipArchive.cs b/SabreTools.Library/FileTypes/LRZipArchive.cs index 3574e5ac..4a184527 100644 --- a/SabreTools.Library/FileTypes/LRZipArchive.cs +++ b/SabreTools.Library/FileTypes/LRZipArchive.cs @@ -2,7 +2,6 @@ using System.Collections.Generic; using System.IO; -using SabreTools.Library.DatFiles; using SabreTools.Library.DatItems; namespace SabreTools.Library.FileTypes @@ -78,10 +77,8 @@ namespace SabreTools.Library.FileTypes /// /// Generate a list of DatItem objects from the header values in an archive /// - /// True if entry dates should be included, false otherwise (default) /// List of DatItem objects representing the found data - /// TODO: All instances of Hash.DeepHashes should be made into 0x0 eventually - public override List GetChildren(bool date = false) + public override List GetChildren() { throw new NotImplementedException(); } diff --git a/SabreTools.Library/FileTypes/LZ4Archive.cs b/SabreTools.Library/FileTypes/LZ4Archive.cs index f1f56edf..2f3dc069 100644 --- a/SabreTools.Library/FileTypes/LZ4Archive.cs +++ b/SabreTools.Library/FileTypes/LZ4Archive.cs @@ -2,7 +2,6 @@ using System.Collections.Generic; using System.IO; -using SabreTools.Library.DatFiles; using SabreTools.Library.DatItems; namespace SabreTools.Library.FileTypes @@ -78,10 +77,8 @@ namespace SabreTools.Library.FileTypes /// /// Generate a list of DatItem objects from the header values in an archive /// - /// True if entry dates should be included, false otherwise (default) /// List of DatItem objects representing the found data - /// TODO: All instances of Hash.DeepHashes should be made into 0x0 eventually - public override List GetChildren(bool date = false) + public override List GetChildren() { throw new NotImplementedException(); } diff --git a/SabreTools.Library/FileTypes/RarArchive.cs b/SabreTools.Library/FileTypes/RarArchive.cs index f2490842..81a5afc1 100644 --- a/SabreTools.Library/FileTypes/RarArchive.cs +++ b/SabreTools.Library/FileTypes/RarArchive.cs @@ -4,7 +4,6 @@ using System.IO; using System.Linq; using SabreTools.Library.Data; -using SabreTools.Library.DatFiles; using SabreTools.Library.DatItems; using SabreTools.Library.IO; using SharpCompress.Archives; @@ -175,10 +174,8 @@ namespace SabreTools.Library.FileTypes /// /// Generate a list of DatItem objects from the header values in an archive /// - /// True if entry dates should be included, false otherwise (default) /// List of DatItem objects representing the found data - /// TODO: All instances of Hash.DeepHashes should be made into 0x0 eventually - public override List GetChildren(bool date = false) + public override List GetChildren() { List found = new List(); string gamename = Path.GetFileNameWithoutExtension(this.Filename); @@ -196,7 +193,7 @@ namespace SabreTools.Library.FileTypes Filename = entry.Key, Size = entry.Size, CRC = BitConverter.GetBytes(entry.Crc), - Date = (date && entry.LastModifiedTime != null ? entry.LastModifiedTime?.ToString("yyyy/MM/dd hh:mm:ss") : null), + Date = (entry.LastModifiedTime != null ? entry.LastModifiedTime?.ToString("yyyy/MM/dd hh:mm:ss") : null), Parent = gamename, }); diff --git a/SabreTools.Library/FileTypes/SevenZipArchive.cs b/SabreTools.Library/FileTypes/SevenZipArchive.cs index 21defa9c..078f50b2 100644 --- a/SabreTools.Library/FileTypes/SevenZipArchive.cs +++ b/SabreTools.Library/FileTypes/SevenZipArchive.cs @@ -4,7 +4,6 @@ using System.IO; using System.Linq; using SabreTools.Library.Data; -using SabreTools.Library.DatFiles; using SabreTools.Library.DatItems; using SabreTools.Library.IO; using SabreTools.Library.Tools; @@ -259,10 +258,8 @@ namespace SabreTools.Library.FileTypes /// /// Generate a list of DatItem objects from the header values in an archive /// - /// True if entry dates should be included, false otherwise (default) /// List of DatItem objects representing the found data - /// TODO: All instances of Hash.DeepHashes should be made into 0x0 eventually - public override List GetChildren(bool date = false) + public override List GetChildren() { List found = new List(); string gamename = Path.GetFileNameWithoutExtension(this.Filename); diff --git a/SabreTools.Library/FileTypes/TapeArchive.cs b/SabreTools.Library/FileTypes/TapeArchive.cs index 514a9fcc..f8679689 100644 --- a/SabreTools.Library/FileTypes/TapeArchive.cs +++ b/SabreTools.Library/FileTypes/TapeArchive.cs @@ -4,7 +4,6 @@ using System.IO; using System.Linq; using SabreTools.Library.Data; -using SabreTools.Library.DatFiles; using SabreTools.Library.DatItems; using SabreTools.Library.IO; using SabreTools.Library.Tools; @@ -180,10 +179,8 @@ namespace SabreTools.Library.FileTypes /// /// Generate a list of DatItem objects from the header values in an archive /// - /// True if entry dates should be included, false otherwise (default) /// List of DatItem objects representing the found data - /// TODO: All instances of Hash.DeepHashes should be made into 0x0 eventually - public override List GetChildren(bool date = false) + public override List GetChildren() { List found = new List(); string gamename = Path.GetFileNameWithoutExtension(this.Filename); @@ -201,7 +198,7 @@ namespace SabreTools.Library.FileTypes Filename = entry.Key, Size = entry.Size, CRC = BitConverter.GetBytes(entry.Crc), - Date = (date && entry.LastModifiedTime != null ? entry.LastModifiedTime?.ToString("yyyy/MM/dd hh:mm:ss") : null), + Date = (entry.LastModifiedTime != null ? entry.LastModifiedTime?.ToString("yyyy/MM/dd hh:mm:ss") : null), Parent = gamename, }); diff --git a/SabreTools.Library/FileTypes/XZArchive.cs b/SabreTools.Library/FileTypes/XZArchive.cs index 67f9f3e7..063778c2 100644 --- a/SabreTools.Library/FileTypes/XZArchive.cs +++ b/SabreTools.Library/FileTypes/XZArchive.cs @@ -4,7 +4,6 @@ using System.IO; using System.Text.RegularExpressions; using SabreTools.Library.Data; -using SabreTools.Library.DatFiles; using SabreTools.Library.DatItems; using SabreTools.Library.IO; using SabreTools.Library.Tools; @@ -181,10 +180,8 @@ namespace SabreTools.Library.FileTypes /// /// Generate a list of DatItem objects from the header values in an archive /// - /// True if entry dates should be included, false otherwise (default) /// List of DatItem objects representing the found data - /// TODO: All instances of Hash.DeepHashes should be made into 0x0 eventually - public override List GetChildren(bool date = false) + public override List GetChildren() { if (_children == null || _children.Count == 0) { diff --git a/SabreTools.Library/FileTypes/ZPAQArchive.cs b/SabreTools.Library/FileTypes/ZPAQArchive.cs index 991953a4..5f4d5a25 100644 --- a/SabreTools.Library/FileTypes/ZPAQArchive.cs +++ b/SabreTools.Library/FileTypes/ZPAQArchive.cs @@ -2,7 +2,6 @@ using System.Collections.Generic; using System.IO; -using SabreTools.Library.DatFiles; using SabreTools.Library.DatItems; namespace SabreTools.Library.FileTypes @@ -78,10 +77,8 @@ namespace SabreTools.Library.FileTypes /// /// Generate a list of DatItem objects from the header values in an archive /// - /// True if entry dates should be included, false otherwise (default) /// List of DatItem objects representing the found data - /// TODO: All instances of Hash.DeepHashes should be made into 0x0 eventually - public override List GetChildren(bool date = false) + public override List GetChildren() { throw new NotImplementedException(); } diff --git a/SabreTools.Library/FileTypes/ZipArchive.cs b/SabreTools.Library/FileTypes/ZipArchive.cs index cbd4e196..30eab327 100644 --- a/SabreTools.Library/FileTypes/ZipArchive.cs +++ b/SabreTools.Library/FileTypes/ZipArchive.cs @@ -4,7 +4,6 @@ using System.IO; using System.Linq; using SabreTools.Library.Data; -using SabreTools.Library.DatFiles; using SabreTools.Library.DatItems; using SabreTools.Library.IO; using SabreTools.Library.Tools; @@ -260,10 +259,8 @@ namespace SabreTools.Library.FileTypes /// /// Generate a list of DatItem objects from the header values in an archive /// - /// True if entry dates should be included, false otherwise (default) /// List of DatItem objects representing the found data - /// TODO: All instances of Hash.DeepHashes should be made into 0x0 eventually - public override List GetChildren(bool date = false) + public override List GetChildren() { List found = new List(); string gamename = Path.GetFileNameWithoutExtension(this.Filename); @@ -312,7 +309,7 @@ namespace SabreTools.Library.FileTypes Filename = newname, Size = newsize, CRC = newcrc, - Date = (date ? convertedDate : null), + Date = convertedDate, Parent = gamename, }); @@ -324,7 +321,7 @@ namespace SabreTools.Library.FileTypes zipEntryRom.Filename = zf.Filename(i); zipEntryRom.Parent = gamename; string convertedDate = zf.LastModified(i).ToString("yyyy/MM/dd hh:mm:ss"); - zipEntryRom.Date = (date ? convertedDate : null); + zipEntryRom.Date = convertedDate; found.Add(zipEntryRom); } } diff --git a/SabreTools.Library/FileTypes/ZstdArchive.cs b/SabreTools.Library/FileTypes/ZstdArchive.cs index 42b6b50b..da0010c4 100644 --- a/SabreTools.Library/FileTypes/ZstdArchive.cs +++ b/SabreTools.Library/FileTypes/ZstdArchive.cs @@ -2,8 +2,6 @@ using System.Collections.Generic; using System.IO; -using SabreTools.Library.Data; -using SabreTools.Library.DatFiles; using SabreTools.Library.DatItems; namespace SabreTools.Library.FileTypes @@ -79,10 +77,8 @@ namespace SabreTools.Library.FileTypes /// /// Generate a list of DatItem objects from the header values in an archive /// - /// True if entry dates should be included, false otherwise (default) /// List of DatItem objects representing the found data - /// TODO: All instances of Hash.DeepHashes should be made into 0x0 eventually - public override List GetChildren(bool date = false) + public override List GetChildren() { throw new NotImplementedException(); } diff --git a/SabreTools.Library/IO/FileExtensions.cs b/SabreTools.Library/IO/FileExtensions.cs index 99f1c932..5e1c82dd 100644 --- a/SabreTools.Library/IO/FileExtensions.cs +++ b/SabreTools.Library/IO/FileExtensions.cs @@ -339,11 +339,10 @@ namespace SabreTools.Library.IO /// Retrieve file information for a single file /// /// Filename to get information from - /// True if the file Date should be included, false otherwise (default) /// Populated string representing the name of the skipper to use, a blank string to use the first available checker, null otherwise /// TreatAsFiles representing special format scanning /// Populated BaseFile object if success, empty one on error - public static BaseFile GetInfo(string input, bool date = false, string header = null, TreatAsFile asFiles = 0x00) + public static BaseFile GetInfo(string input, string header = null, TreatAsFile asFiles = 0x00) { // Add safeguard if file doesn't exist if (!File.Exists(input)) @@ -384,7 +383,7 @@ namespace SabreTools.Library.IO // Add unique data from the file baseFile.Filename = Path.GetFileName(input); - baseFile.Date = (date ? new FileInfo(input).LastWriteTime.ToString("yyyy/MM/dd HH:mm:ss") : string.Empty); + baseFile.Date = new FileInfo(input).LastWriteTime.ToString("yyyy/MM/dd HH:mm:ss"); return baseFile; } diff --git a/SabreTools/Features/Batch.cs b/SabreTools/Features/Batch.cs index 4e9dc876..c156c1a9 100644 --- a/SabreTools/Features/Batch.cs +++ b/SabreTools/Features/Batch.cs @@ -157,7 +157,10 @@ Reset the internal state: reset();"; } // TODO: We might not want to remove higher order hashes in the future - datFile.ApplyCleaning(new Cleaner() { ExcludeFields = Hash.DeepHashes.AsFields() }); + // TODO: We might not want to remove dates in the future + Cleaner dfdCleaner = new Cleaner() { ExcludeFields = Hash.DeepHashes.AsFields() }; + dfdCleaner.ExcludeFields.Add(Field.DatItem_Date); + datFile.ApplyCleaning(dfdCleaner); break; diff --git a/SabreTools/Features/DatFromDir.cs b/SabreTools/Features/DatFromDir.cs index 30de1c95..9359a3cf 100644 --- a/SabreTools/Features/DatFromDir.cs +++ b/SabreTools/Features/DatFromDir.cs @@ -66,11 +66,13 @@ namespace SabreTools.Features var skipFileType = GetSkipFileType(features); var splitType = GetSplitType(features); - // Apply the omit from scan values to the cleaner + // Apply the specialized field removals to the cleaner if (Cleaner.ExcludeFields == null) Cleaner.ExcludeFields = new List(); Cleaner.ExcludeFields.AddRange(omitFromScan.AsFields()); + if (!addFileDates) + Cleaner.ExcludeFields.Add(Field.DatItem_Date); // Create a new DATFromDir object and process the inputs DatFile basedat = DatFile.Create(Header); @@ -94,7 +96,6 @@ namespace SabreTools.Features asFiles, skipFileType, addBlankFiles, - addFileDates, quickScan: omitFromScan == Hash.SecureHashes); if (success)