diff --git a/SabreTools.DatTools/Rebuilder.cs b/SabreTools.DatTools/Rebuilder.cs
index 209f229b..34f17b5c 100644
--- a/SabreTools.DatTools/Rebuilder.cs
+++ b/SabreTools.DatTools/Rebuilder.cs
@@ -826,7 +826,7 @@ namespace SabreTools.DatTools
{
Folder? outputArchive = FileTypeTool.CreateFolderType(outputFormat);
if (outputArchive is BaseArchive baseArchive && date)
- baseArchive.UseDates = date;
+ baseArchive.SetRealDates(date);
// Set the depth fields where appropriate
if (outputArchive is GZipArchive gzipArchive)
diff --git a/SabreTools.FileTypes/Archives/SevenZipArchive.cs b/SabreTools.FileTypes/Archives/SevenZipArchive.cs
index 66423c35..0369c695 100644
--- a/SabreTools.FileTypes/Archives/SevenZipArchive.cs
+++ b/SabreTools.FileTypes/Archives/SevenZipArchive.cs
@@ -424,7 +424,7 @@ namespace SabreTools.FileTypes.Archives
ulong istreamSize = (ulong)(inputStream.Length);
DateTime dt = DateTime.Now;
- if (UseDates && !string.IsNullOrEmpty(baseFile.Date) && DateTime.TryParse(baseFile.Date!.Replace('\\', '/'), out dt))
+ if (_realDates && !string.IsNullOrEmpty(baseFile.Date) && DateTime.TryParse(baseFile.Date!.Replace('\\', '/'), out dt))
{
long msDosDateTime = DateTimeHelper.ConvertToMsDosTimeFormat(dt);
TimeStamps ts = new() { ModTime = msDosDateTime };
@@ -501,7 +501,7 @@ namespace SabreTools.FileTypes.Archives
ulong istreamSize = (ulong)(inputStream.Length);
DateTime dt = DateTime.Now;
- if (UseDates && !string.IsNullOrEmpty(baseFile.Date) && DateTime.TryParse(baseFile.Date!.Replace('\\', '/'), out dt))
+ if (_realDates && !string.IsNullOrEmpty(baseFile.Date) && DateTime.TryParse(baseFile.Date!.Replace('\\', '/'), out dt))
{
long msDosDateTime = DateTimeHelper.ConvertToMsDosTimeFormat(dt);
TimeStamps ts = new() { ModTime = msDosDateTime };
@@ -639,7 +639,7 @@ namespace SabreTools.FileTypes.Archives
ulong istreamSize = (ulong)new FileInfo(inputFiles[index]).Length;
DateTime dt = DateTime.Now;
- if (UseDates && !string.IsNullOrEmpty(baseFiles[index].Date) && DateTime.TryParse(baseFiles[index].Date?.Replace('\\', '/'), out dt))
+ if (_realDates && !string.IsNullOrEmpty(baseFiles[index].Date) && DateTime.TryParse(baseFiles[index].Date?.Replace('\\', '/'), out dt))
{
long msDosDateTime = DateTimeHelper.ConvertToMsDosTimeFormat(dt);
TimeStamps ts = new() { ModTime = msDosDateTime };
@@ -721,7 +721,7 @@ namespace SabreTools.FileTypes.Archives
ulong istreamSize = (ulong)(new FileInfo(inputFiles[-index - 1]).Length);
DateTime dt = DateTime.Now;
- if (UseDates && !string.IsNullOrEmpty(baseFiles[-index - 1].Date) && DateTime.TryParse(baseFiles[-index - 1].Date?.Replace('\\', '/'), out dt))
+ if (_realDates && !string.IsNullOrEmpty(baseFiles[-index - 1].Date) && DateTime.TryParse(baseFiles[-index - 1].Date?.Replace('\\', '/'), out dt))
{
long msDosDateTime = DateTimeHelper.ConvertToMsDosTimeFormat(dt);
TimeStamps ts = new() { ModTime = msDosDateTime };
diff --git a/SabreTools.FileTypes/Archives/TapeArchive.cs b/SabreTools.FileTypes/Archives/TapeArchive.cs
index 7542012f..465d371a 100644
--- a/SabreTools.FileTypes/Archives/TapeArchive.cs
+++ b/SabreTools.FileTypes/Archives/TapeArchive.cs
@@ -320,7 +320,7 @@ namespace SabreTools.FileTypes.Archives
{
// Get temporary date-time if possible
DateTime? usableDate = null;
- if (UseDates && !string.IsNullOrEmpty(baseFile.Date) && DateTime.TryParse(baseFile.Date!.Replace('\\', '/'), out DateTime dt))
+ if (_realDates && !string.IsNullOrEmpty(baseFile.Date) && DateTime.TryParse(baseFile.Date!.Replace('\\', '/'), out DateTime dt))
usableDate = dt;
// Copy the input stream to the output
@@ -375,7 +375,7 @@ namespace SabreTools.FileTypes.Archives
// Get temporary date-time if possible
DateTime? usableDate = null;
- if (UseDates && !string.IsNullOrEmpty(baseFile.Date) && DateTime.TryParse(baseFile.Date!.Replace('\\', '/'), out DateTime dt))
+ if (_realDates && !string.IsNullOrEmpty(baseFile.Date) && DateTime.TryParse(baseFile.Date!.Replace('\\', '/'), out DateTime dt))
usableDate = dt;
// If we have the input file, add it now
@@ -488,7 +488,7 @@ namespace SabreTools.FileTypes.Archives
// Get temporary date-time if possible
DateTime? usableDate = null;
- if (UseDates && !string.IsNullOrEmpty(baseFiles[index].Date) && DateTime.TryParse(baseFiles[index].Date?.Replace('\\', '/'), out DateTime dt))
+ if (_realDates && !string.IsNullOrEmpty(baseFiles[index].Date) && DateTime.TryParse(baseFiles[index].Date?.Replace('\\', '/'), out DateTime dt))
usableDate = dt;
// Copy the input stream to the output
@@ -550,7 +550,7 @@ namespace SabreTools.FileTypes.Archives
{
// Get temporary date-time if possible
DateTime? usableDate = null;
- if (UseDates && !string.IsNullOrEmpty(baseFiles[-index - 1].Date) && DateTime.TryParse(baseFiles[-index - 1].Date?.Replace('\\', '/'), out DateTime dt))
+ if (_realDates && !string.IsNullOrEmpty(baseFiles[-index - 1].Date) && DateTime.TryParse(baseFiles[-index - 1].Date?.Replace('\\', '/'), out DateTime dt))
usableDate = dt;
// Copy the input file to the output
diff --git a/SabreTools.FileTypes/Archives/ZipArchive.cs b/SabreTools.FileTypes/Archives/ZipArchive.cs
index a722f4f4..c82ea640 100644
--- a/SabreTools.FileTypes/Archives/ZipArchive.cs
+++ b/SabreTools.FileTypes/Archives/ZipArchive.cs
@@ -605,7 +605,7 @@ namespace SabreTools.FileTypes.Archives
ulong istreamSize = (ulong)(inputStream.Length);
DateTime dt = DateTime.Now;
- if (UseDates && !string.IsNullOrEmpty(baseFile.Date) && DateTime.TryParse(baseFile.Date!.Replace('\\', '/'), out dt))
+ if (_realDates && !string.IsNullOrEmpty(baseFile.Date) && DateTime.TryParse(baseFile.Date!.Replace('\\', '/'), out dt))
{
long msDosDateTime = DateTimeHelper.ConvertToMsDosTimeFormat(dt);
TimeStamps ts = new() { ModTime = msDosDateTime };
@@ -679,7 +679,7 @@ namespace SabreTools.FileTypes.Archives
ulong istreamSize = (ulong)(inputStream.Length);
DateTime dt = DateTime.Now;
- if (UseDates && !string.IsNullOrEmpty(baseFile.Date) && DateTime.TryParse(baseFile.Date!.Replace('\\', '/'), out dt))
+ if (_realDates && !string.IsNullOrEmpty(baseFile.Date) && DateTime.TryParse(baseFile.Date!.Replace('\\', '/'), out dt))
{
long msDosDateTime = DateTimeHelper.ConvertToMsDosTimeFormat(dt);
TimeStamps ts = new() { ModTime = msDosDateTime };
@@ -813,7 +813,7 @@ namespace SabreTools.FileTypes.Archives
ulong istreamSize = (ulong)(new FileInfo(inputFiles[index]).Length);
DateTime dt = DateTime.Now;
- if (UseDates && !string.IsNullOrEmpty(baseFiles[index].Date) && DateTime.TryParse(baseFiles[index].Date?.Replace('\\', '/'), out dt))
+ if (_realDates && !string.IsNullOrEmpty(baseFiles[index].Date) && DateTime.TryParse(baseFiles[index].Date?.Replace('\\', '/'), out dt))
{
long msDosDateTime = DateTimeHelper.ConvertToMsDosTimeFormat(dt);
TimeStamps ts = new() { ModTime = msDosDateTime };
@@ -895,7 +895,7 @@ namespace SabreTools.FileTypes.Archives
ulong istreamSize = (ulong)(new FileInfo(inputFiles[-index - 1]).Length);
DateTime dt = DateTime.Now;
- if (UseDates && !string.IsNullOrEmpty(baseFiles[-index - 1].Date) && DateTime.TryParse(baseFiles[-index - 1].Date?.Replace('\\', '/'), out dt))
+ if (_realDates && !string.IsNullOrEmpty(baseFiles[-index - 1].Date) && DateTime.TryParse(baseFiles[-index - 1].Date?.Replace('\\', '/'), out dt))
{
long msDosDateTime = DateTimeHelper.ConvertToMsDosTimeFormat(dt);
TimeStamps ts = new() { ModTime = msDosDateTime };
diff --git a/SabreTools.FileTypes/BaseArchive.cs b/SabreTools.FileTypes/BaseArchive.cs
index 00a9750b..62dab138 100644
--- a/SabreTools.FileTypes/BaseArchive.cs
+++ b/SabreTools.FileTypes/BaseArchive.cs
@@ -7,15 +7,15 @@ namespace SabreTools.FileTypes
{
#region Fields
- ///
- /// Determines if dates are read or written
- ///
- public bool UseDates { get; set; } = false;
-
#endregion
#region Protected instance variables
+ ///
+ /// Determines if real dates are written
+ ///
+ protected bool _realDates = false;
+
///
/// Buffer size used by archives
///
@@ -68,6 +68,14 @@ namespace SabreTools.FileTypes
#region Writing
+ ///
+ /// Set if real dates are written
+ ///
+ public void SetRealDates(bool realDates)
+ {
+ _realDates = realDates;
+ }
+
///
public override abstract bool Write(string inputFile, string outDir, BaseFile? baseFile);