Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Köplinger <alex.koeplinger@outlook.com>2016-05-27 21:20:18 +0300
committerAlexander Köplinger <alex.koeplinger@outlook.com>2016-05-27 21:20:18 +0300
commitee5a06c1a0467518249a67fd900c62b9bb8f25d3 (patch)
tree6d4c9416e17e4a443cf64e812a2f2831d5a46b2b /mcs/class/System.IO.Compression.FileSystem
parent87b55c5dc97207f668d0a9b696afc57e95faf35f (diff)
parentb977ec8ef9a6795352e2b1cd0c4173b1a66e4ee1 (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.cs26
-rw-r--r--mcs/class/System.IO.Compression.FileSystem/ZipFileExtensions.cs1
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);