this.filePart = filePart;
lastModifiedTime = Utility.DosDateToDateTime(filePart.Header.LastModifiedDate,
filePart.Header.LastModifiedTime);
+ if (lastModifiedTime == default(DateTime))
+ {
+ // On .NET on Windows, for zip entries that don't have a last write time,
+ // the return value for ZipArchiveEntry.LastWriteTime is:
+ // 1/1/1980 12:00:00 AM, Ticks=624511296000000000
+ lastModifiedTime = new DateTime(624511296000000000);
+ }
}
}
File.Delete ("test.zip");
}
+ [Test]
+ public void ZipEnumerateArchiveDefaultLastWriteTime()
+ {
+ using (var archive = new ZipArchive(File.Open("test.nupkg", FileMode.Open),
+ ZipArchiveMode.Read))
+ {
+ var entry = archive.GetEntry("_rels/.rels");
+ Assert.AreEqual(new DateTime(624511296000000000).Ticks, entry.LastWriteTime.Ticks);
+ Assert.IsNotNull(entry);
+ }
+ }
+
[Test]
public void ZipEnumerateEntriesReadMode()
{