From bfab4a61e9d3505c023310f9b7d1da57c0e70b55 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Sun, 4 Oct 2020 13:29:26 -0700 Subject: [PATCH] Don't throw on getting invalid datetime --- .../External/Compress/ZipFile/zipFile.cs | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/SabreTools.Library/External/Compress/ZipFile/zipFile.cs b/SabreTools.Library/External/Compress/ZipFile/zipFile.cs index e6616d6d..90967102 100644 --- a/SabreTools.Library/External/Compress/ZipFile/zipFile.cs +++ b/SabreTools.Library/External/Compress/ZipFile/zipFile.cs @@ -1129,21 +1129,28 @@ namespace Compress.ZipFile { get { - if (_lastModFileDateTime == null) + try { - int second = (_lastModFileTime & 0x1f) * 2; - int minute = (_lastModFileTime >> 5) & 0x3f; - int hour = (_lastModFileTime >> 11) & 0x1f; + if (_lastModFileDateTime == null) + { + int second = (_lastModFileTime & 0x1f) * 2; + int minute = (_lastModFileTime >> 5) & 0x3f; + int hour = (_lastModFileTime >> 11) & 0x1f; - int day = _lastModFileDate & 0x1f; - int month = (_lastModFileDate >> 5) & 0x0f; - int year = ((_lastModFileDate >> 9) & 0x7f) + 1980; + int day = _lastModFileDate & 0x1f; + int month = (_lastModFileDate >> 5) & 0x0f; + int year = ((_lastModFileDate >> 9) & 0x7f) + 1980; - return new DateTime(year, month, day, hour, minute, second); + return new DateTime(year, month, day, hour, minute, second); + } + else + { + return SabreTools.Library.Tools.Utilities.ConvertMsDosTimeFormatToDateTime(_lastModFileDateTime.Value); + } } - else + catch { - return SabreTools.Library.Tools.Utilities.ConvertMsDosTimeFormatToDateTime(_lastModFileDateTime.Value); + return DateTime.MinValue; } } }