Directory.Delete ("extract", true);
}
+
+ [Test]
+ public void ZipCreateFromEntryChangeTimestamp()
+ {
+ if (File.Exists ("foo.zip"))
+ File.Delete ("foo.zip");
+
+ var file = "foo/foo.txt";
+ using (var archive = new ZipArchive(File.Open("foo.zip", FileMode.Create),
+ ZipArchiveMode.Update))
+ {
+ archive.CreateEntryFromFile(file, file);
+ }
+
+ var date = File.GetLastWriteTimeUtc(file);
+
+ using (var archive = new ZipArchive (File.Open ("foo.zip", FileMode.Open),
+ ZipArchiveMode.Read))
+ {
+ var entry = archive.GetEntry (file);
+ Assert.IsNotNull (entry);
+ Assert.AreEqual(entry.LastWriteTime.Year, date.Year);
+ Assert.AreEqual(entry.LastWriteTime.Month, date.Month);
+ Assert.AreEqual(entry.LastWriteTime.Day, date.Day);
+ }
+ }
}
}
FileAccess.Read, FileShare.Read))
{
var zipArchiveEntry = destination.CreateEntry (entryName, compressionLevel);
+ zipArchiveEntry.LastWriteTime = File.GetLastWriteTimeUtc(sourceFileName);
using (Stream entryStream = zipArchiveEntry.Open ())
stream.CopyTo (entryStream);
{
private readonly string path;
private readonly long size;
- private readonly DateTime? lastModified;
private readonly bool closeStream;
private readonly Stream stream;
private bool isDisposed;
this.stream = stream;
this.path = path;
this.size = size;
- this.lastModified = lastModified;
+ this.LastModifiedTime = lastModified;
this.closeStream = closeStream;
}
get { return size; }
}
- public override DateTime? LastModifiedTime
- {
- get { return lastModified; }
- }
-
public override DateTime? CreatedTime
{
get { return null; }
File.Delete ("create.zip");
}
+ [Test]
+ public void ZipEnumerateEntriesModifiedTime()
+ {
+ File.Copy("archive.zip", "test.zip", overwrite: true);
+ var date = DateTimeOffset.Now;
+ using (var archive = new ZipArchive(File.Open("test.zip", FileMode.Open),
+ ZipArchiveMode.Update))
+ {
+ var entry = archive.GetEntry("foo.txt");
+ entry.LastWriteTime = date;
+ }
+
+ using (var archive = new ZipArchive(File.Open("test.zip", FileMode.Open),
+ ZipArchiveMode.Read))
+ {
+ var entry = archive.GetEntry("foo.txt");
+ Assert.AreEqual(entry.LastWriteTime.Year, date.Year);
+ Assert.AreEqual(entry.LastWriteTime.Month, date.Month);
+ Assert.AreEqual(entry.LastWriteTime.Day, date.Day);
+
+ }
+
+ File.Delete ("test.zip");
+ }
+
[Test]
public void ZipEnumerateEntriesReadMode()
{