SoFunction
Updated on 2025-03-07

Sample code for implementing file compression and decompression functions in C#

compression

private void skinButton1_Click(object sender, EventArgs e)
        {
            (,);
            ("Compression is complete");
        }

ZipDirectory

The compression uses library functions

       /// <summary>
       /// Compress folder       /// </summary>
       /// <param name="folderToZip">Folders that need to be compressed</param>       /// <param name="zipedFileName">Compressed Zip full file name</param>        public static void ZipDirectory(string folderToZip, string zipedFileName)
        {
            ZipDirectory(folderToZip, zipedFileName, , true, , , true);
        }
 
        /// &lt;summary&gt;
        /// Compress folder        /// &lt;/summary&gt;
        /// <param name="folderToZip">Folders that need to be compressed</param>        /// <param name="zipedFileName">Compressed Zip complete file name (such as D:\)</param>        /// <param name="isRecurse">If there is a subfolder under the folder, is it recursively compressed</param>        /// <param name="password">Password required to be provided when decompressing</param>        /// <param name="fileRegexFilter">File filtering regular expressions</param>        /// <param name="directoryRegexFilter">Folder filter regular expressions</param>        /// <param name="isCreateEmptyDirectories">Whether to compress empty folders in the file</param> 
        public static void ZipDirectory(string folderToZip, string zipedFileName, string password, bool isRecurse, string fileRegexFilter, string directoryRegexFilter, bool isCreateEmptyDirectories)
        {
            FastZip fastZip = new FastZip();
             = isCreateEmptyDirectories;
             = password;
            (zipedFileName, folderToZip, isRecurse, fileRegexFilter, directoryRegexFilter);
        }

Decompress

  private void skinButton2_Click(object sender, EventArgs e)
        {
            (,"");
             ("Decompression is complete");
        }

UnZip

The library function is used to decompress

        /// &lt;summary&gt;  
        /// Function: Unzip zip format files.        /// &lt;/summary&gt;  
        /// <param name="zipFilePath">Compressed file path</param>        /// <param name="unZipDir">The decompressed file storage path is empty. When it is empty, the default is the same as the compressed file. The folder with the same name as the compressed file</param>        /// <returns>Is the decompression successful</returns>        public void UnZip(string zipFilePath, string unZipDir)
        {
            if (zipFilePath == )
            {
                throw new Exception("The compressed file cannot be empty!");
            }
            if (!(zipFilePath))
            {
                throw new FileNotFoundException("The compressed file does not exist!");
            }
            // When the decompressed folder is empty, the default is the same as the compressed file in the same level directory as the compressed file, and the folder with the same name as the compressed file is            if (unZipDir == )
                unZipDir = ((zipFilePath), (zipFilePath));
            if (!("/"))
                unZipDir += "/";
            if (!(unZipDir))
                (unZipDir);
 
            using (var s = new ZipInputStream((zipFilePath)))
            {
 
                ZipEntry theEntry;
                while ((theEntry = ()) != null)
                {
                    string directoryName = ();
                    string fileName = ();
                    if (!(directoryName))
                    {
                        (unZipDir + directoryName);
                    }
                    if (directoryName != null &amp;&amp; !("/"))
                    {
                    }
                    if (fileName != )
                    {
                        using (FileStream streamWriter = (unZipDir + ))
                        {
 
                            int size;
                            byte[] data = new byte[2048];
                            while (true)
                            {
                                size = (data, 0, );
                                if (size &gt; 0)
                                {
                                    (data, 0, size);
                                }
                                else
                                {
                                    break;
                                }
                            }
                        }
                    }
                }
            }
        }

This is the article about the example code of C# implementing file compression and decompression functions. For more related C# file compression and decompression content, please search for my previous articles or continue browsing the related articles below. I hope everyone will support me in the future!