FileInfo - ExtractZipFileToDirectory
Extracts all the files in the specified zip archive to a directory on the file system
public static void Main() { var dir = new DirectoryInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ExtractZipFileToDirectory")); var dir2 = new DirectoryInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ExtractZipFileToDirectory_Zip")); var dir3 = new DirectoryInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ExtractZipFileToDirectory_Output")); if (dir.Exists) { dir.Clear(); } if (dir2.Exists) { dir2.Clear(); } if (dir3.Exists) { dir3.Clear(); } // Type var @this = new FileInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ExtractZipFileToDirectory", "Examples_System_IO_FileInfo_ExtractZipFileToDirectory.txt")); var zip = new FileInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ExtractZipFileToDirectory_Zip", "Examples_System_IO_FileInfo_ExtractZipFileToDirectory.zip")); var output = new DirectoryInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ExtractZipFileToDirectory_Output")); Directory.CreateDirectory(@this.Directory.FullName); Directory.CreateDirectory(zip.Directory.FullName); Directory.CreateDirectory(output.FullName); // Intialization using (FileStream stream = @this.Create()) { } @this.Directory.CreateZipFile(zip); var file = output.GetFiles(); //C# Extension Method: FileInfo - ExtractZipFileToDirectory zip.ExtractZipFileToDirectory(output); if (zip.Exists) { Console.WriteLine("{0} is created.", zip.Name); } }
View Source
#if NET45_OR_GREATER using System.IO; using System.IO.Compression; using System.Text; public static partial class Extensions { /// <summary> /// Extracts all the files in the specified zip archive to a directory on the file system /// </summary> /// <param name="this">The @this to act on.</param> /// <param name="destinationDirectoryName"> /// The path to the directory in which to place the /// extracted files, specified as a relative or absolute path. A relative path is interpreted as /// relative to the current working directory. /// </param> public static void ExtractZipFileToDirectory(this FileInfo @this, string destinationDirectoryName) { ZipFile.ExtractToDirectory(@this.FullName, destinationDirectoryName); } /// <summary> /// Extracts all the files in the specified zip archive to a directory on the file system and uses the specified /// character encoding for entry names. /// </summary> /// <param name="this">The path to the archive that is to be extracted.</param> /// <param name="destinationDirectoryName"> /// The path to the directory in which to place the extracted files, specified as a /// relative or absolute path. A relative path is interpreted as relative to the current working directory. /// </param> /// <param name="entryNameEncoding"> /// The encoding to use when reading or writing entry names in this archive. Specify a /// value for this parameter only when an encoding is required for interoperability with zip archive tools and /// libraries that do not support UTF-8 encoding for entry names. /// </param> public static void ExtractZipFileToDirectory(this FileInfo @this, string destinationDirectoryName, Encoding entryNameEncoding) { ZipFile.ExtractToDirectory(@this.FullName, destinationDirectoryName, entryNameEncoding); } /// <summary>Extracts all the files in the specified zip archive to a directory on the file system.</summary> /// <param name="this">The @this to act on.</param> /// <param name="destinationDirectory">Pathname of the destination directory.</param> public static void ExtractZipFileToDirectory(this FileInfo @this, DirectoryInfo destinationDirectory) { ZipFile.ExtractToDirectory(@this.FullName, destinationDirectory.FullName); } /// <summary> /// Extracts all the files in the specified zip archive to a directory on the file system /// and uses the specified character encoding for entry names. /// </summary> /// <param name="this">The @this to act on.</param> /// <param name="destinationDirectory">Pathname of the destination directory.</param> /// <param name="entryNameEncoding"> /// The encoding to use when reading or writing entry names in /// this archive. Specify a value for this parameter only when an encoding is required for /// interoperability with zip archive tools and libraries that do not support UTF-8 encoding for /// entry names. /// </param> public static void ExtractZipFileToDirectory(this FileInfo @this, DirectoryInfo destinationDirectory, Encoding entryNameEncoding) { ZipFile.ExtractToDirectory(@this.FullName, destinationDirectory.FullName, entryNameEncoding); } } #endif