diff options
author | Alexander Köplinger <alex.koeplinger@outlook.com> | 2016-05-27 21:20:18 +0300 |
---|---|---|
committer | Alexander Köplinger <alex.koeplinger@outlook.com> | 2016-05-27 21:20:18 +0300 |
commit | ee5a06c1a0467518249a67fd900c62b9bb8f25d3 (patch) | |
tree | 6d4c9416e17e4a443cf64e812a2f2831d5a46b2b /mcs/class/System.IO.Compression.FileSystem | |
parent | 87b55c5dc97207f668d0a9b696afc57e95faf35f (diff) | |
parent | b977ec8ef9a6795352e2b1cd0c4173b1a66e4ee1 (diff) |
Merge pull request #3037 from mono/system_io_compression_datetime
[System.IO.Compression/.Filesystem] Fixed handling of date/time for Zip entries
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); |