Imported Upstream version 4.6.0.125

Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2016-08-03 10:59:49 +00:00
parent a569aebcfd
commit e79aa3c0ed
17047 changed files with 3137615 additions and 392334 deletions

View File

@@ -5,6 +5,7 @@ include ../../build/rules.make
LIBRARY = System.IO.Compression.FileSystem.dll
LIB_REFS = System System.IO.Compression
LIB_MCS_FLAGS =
TEST_MCS_FLAGS = /r:System /r:System.Core /r:System.IO.Compression.dll
TEST_MCS_FLAGS =
TEST_LIB_REFS = System System.Core System.IO.Compression
include ../../build/library.make

View File

@@ -2,4 +2,4 @@ AssemblyInfo.cs
ZipFile.cs
ZipFileExtensions.cs
../../build/common/Consts.cs
../../build/common/MonoTODOAttribute.cs
../../build/common/MonoTODOAttribute.cs

View File

@@ -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);
}
}
}
}

View File

@@ -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);