Skip to content

Commit d5d1a52

Browse files
committed
Fix getting unix modification time in ZIP files
InfoZIP actually does respect a file's modification time, even if the access time and/or creation time are not set.
1 parent dff3ef1 commit d5d1a52

File tree

1 file changed

+1
-6
lines changed

1 file changed

+1
-6
lines changed

src/ICSharpCode.SharpZipLib/Zip/ZipEntry.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1103,12 +1103,7 @@ private DateTime GetDateTime(ZipExtraData extraData)
11031103

11041104
// Check for Unix timestamp
11051105
ExtendedUnixData unixData = extraData.GetData<ExtendedUnixData>();
1106-
if (unixData != null &&
1107-
// Only apply modification time, but require all other values to be present
1108-
// This is done to match InfoZIP's behaviour
1109-
((unixData.Include & ExtendedUnixData.Flags.ModificationTime) != 0) &&
1110-
((unixData.Include & ExtendedUnixData.Flags.AccessTime) != 0) &&
1111-
((unixData.Include & ExtendedUnixData.Flags.CreateTime) != 0))
1106+
if (unixData != null && unixData.Include.HasFlag(ExtendedUnixData.Flags.ModificationTime))
11121107
return unixData.ModificationTime;
11131108

11141109
// Fall back to DOS time

0 commit comments

Comments
 (0)