public void Extract(string basedir) { string TargetFile = System.IO.Path.Combine(basedir, FileName); using (System.IO.MemoryStream memstream = new System.IO.MemoryStream(_FileData)) { using (System.IO.Compression.DeflateStream input = new System.IO.Compression.DeflateStream(memstream, System.IO.Compression.CompressionMode.Decompress)) { // ensure the target path exists if (!System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(TargetFile))) { System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(TargetFile)); } using (System.IO.FileStream output = new System.IO.FileStream(TargetFile, System.IO.FileMode.CreateNew)) { //BinaryWriter w = new BinaryWriter(fs); byte[] bytes = new byte[4096]; int n; n = 1; // anything non-zero while (n != 0) { n = input.Read(bytes, 0, bytes.Length); if (n > 0) { output.Write(bytes, 0, n); } } } if (LastModified.IsDaylightSavingTime()) { System.IO.File.SetLastWriteTime(TargetFile, LastModified.AddHours(1)); } else { System.IO.File.SetLastWriteTime(TargetFile, LastModified); } } } }