diff options
author | Joao Matos <joao@tritao.eu> | 2016-05-27 15:03:57 +0300 |
---|---|---|
committer | Joao Matos <joao@tritao.eu> | 2016-05-27 15:03:57 +0300 |
commit | b977ec8ef9a6795352e2b1cd0c4173b1a66e4ee1 (patch) | |
tree | e943a7bfe5bce074eb62f1a0ef9980566a085260 /mcs/class/System.IO.Compression.FileSystem | |
parent | 2261009c646112df17270221e7cc78fdee72c9d6 (diff) |
[System.IO.Compression.FileSystem] Fixed date time when creating Zip entries from filesystem files.
Diffstat (limited to 'mcs/class/System.IO.Compression.FileSystem')
-rw-r--r-- | mcs/class/System.IO.Compression.FileSystem/Test/System.IO.Compression.FileSystem/ZipTest.cs | 26 | ||||
-rw-r--r-- | mcs/class/System.IO.Compression.FileSystem/ZipFileExtensions.cs | 1 |
2 files changed, 27 insertions, 0 deletions
diff --git a/mcs/class/System.IO.Compression.FileSystem/Test/System.IO.Compression.FileSystem/ZipTest.cs b/mcs/class/System.IO.Compression.FileSystem/Test/System.IO.Compression.FileSystem/ZipTest.cs index 0354311b478..4321db8534e 100644 --- a/mcs/class/System.IO.Compression.FileSystem/Test/System.IO.Compression.FileSystem/ZipTest.cs +++ b/mcs/class/System.IO.Compression.FileSystem/Test/System.IO.Compression.FileSystem/ZipTest.cs @@ -105,5 +105,31 @@ namespace MonoTests.System.IO.Compression.FileSystem 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); + } + } } } diff --git a/mcs/class/System.IO.Compression.FileSystem/ZipFileExtensions.cs b/mcs/class/System.IO.Compression.FileSystem/ZipFileExtensions.cs index 07a8448171e..36c4146b485 100644 --- a/mcs/class/System.IO.Compression.FileSystem/ZipFileExtensions.cs +++ b/mcs/class/System.IO.Compression.FileSystem/ZipFileExtensions.cs @@ -56,6 +56,7 @@ namespace System.IO.Compression FileAccess.Read, FileShare.Read)) { var zipArchiveEntry = destination.CreateEntry (entryName, compressionLevel); + zipArchiveEntry.LastWriteTime = File.GetLastWriteTimeUtc(sourceFileName); using (Stream entryStream = zipArchiveEntry.Open ()) stream.CopyTo (entryStream); |