FileInfo - ExtractGZipToDirectory
A FileInfo extension method that extracts the g zip to directory described by @this.
public static void Main() { var @this = new FileInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Examples_System_IO_FileInfo_ExtractGZip.txt")); var output = new FileInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Examples_System_IO_FileInfo_ExtractGZip.gz")); var outputExtract = new FileInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Examples_System_IO_FileInfo_ExtractGZip_Example.txt")); using (FileStream stream = @this.Create()) { } @this.CreateGZip(output); //C# Extension Method: FileInfo - ExtractGZipToDirectory output.ExtractGZipToDirectory(outputExtract); if (outputExtract.Exists) Console.WriteLine("{0} extracted successfully.", outputExtract.Name); }
View Source
using System.IO; using System.IO.Compression; public static partial class Extensions { /// <summary> /// A FileInfo extension method that extracts the g zip to directory described by /// @this. /// </summary> /// <param name="this">The @this to act on.</param> public static void ExtractGZipToDirectory(this FileInfo @this) { using (FileStream originalFileStream = @this.OpenRead()) { string newFileName = Path.GetFileNameWithoutExtension(@this.FullName); using (FileStream decompressedFileStream = File.Create(newFileName)) { using (var decompressionStream = new GZipStream(originalFileStream, CompressionMode.Decompress)) { decompressionStream.CopyTo(decompressedFileStream); } } } } /// <summary> /// A FileInfo extension method that extracts the g zip to directory described by /// @this. /// </summary> /// <param name="this">The @this to act on.</param> /// <param name="destination">Destination for the.</param> public static void ExtractGZipToDirectory(this FileInfo @this, string destination) { using (FileStream originalFileStream = @this.OpenRead()) { using (FileStream compressedFileStream = File.Create(destination)) { using (var compressionStream = new GZipStream(compressedFileStream, CompressionMode.Compress)) { originalFileStream.CopyTo(compressionStream); } } } } /// <summary> /// A FileInfo extension method that extracts the g zip to directory described by /// @this. /// </summary> /// <param name="this">The @this to act on.</param> /// <param name="destination">Destination for the.</param> public static void ExtractGZipToDirectory(this FileInfo @this, FileInfo destination) { using (FileStream originalFileStream = @this.OpenRead()) { using (FileStream compressedFileStream = File.Create(destination.FullName)) { using (var compressionStream = new GZipStream(compressedFileStream, CompressionMode.Compress)) { originalFileStream.CopyTo(compressionStream); } } } } }