欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#實(shí)現(xiàn)文件壓縮與解壓功能的示例代碼

 更新時(shí)間:2023年05月19日 08:45:54   作者:叫我少年  
這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)文件壓縮與解壓功能,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,需要的可以參考一下

壓縮

private void skinButton1_Click(object sender, EventArgs e)
        {
            FilesUploadFor.ZipDirectory(foldertozip.Text,zipedfilename.Text);
            filesUploadFor.DisplaylistboxMsg("壓縮完成");
        }

ZipDirectory

壓縮用的是庫函數(shù)

       /// <summary>
       /// 壓縮文件夾
       /// </summary>
       /// <param name="folderToZip">需要壓縮的文件夾</param>
       /// <param name="zipedFileName">壓縮后的Zip完整文件名</param>
        public static void ZipDirectory(string folderToZip, string zipedFileName)
        {
            ZipDirectory(folderToZip, zipedFileName, string.Empty, true, string.Empty, string.Empty, true);
        }
 
        /// <summary>
        /// 壓縮文件夾
        /// </summary>
        /// <param name="folderToZip">需要壓縮的文件夾</param>
        /// <param name="zipedFileName">壓縮后的Zip完整文件名(如D:\test.zip)</param>
        /// <param name="isRecurse">如果文件夾下有子文件夾,是否遞歸壓縮</param>
        /// <param name="password">解壓時(shí)需要提供的密碼</param>
        /// <param name="fileRegexFilter">文件過濾正則表達(dá)式</param>
        /// <param name="directoryRegexFilter">文件夾過濾正則表達(dá)式</param>
        /// <param name="isCreateEmptyDirectories">是否壓縮文件中的空文件夾</param>
 
        public static void ZipDirectory(string folderToZip, string zipedFileName, string password, bool isRecurse, string fileRegexFilter, string directoryRegexFilter, bool isCreateEmptyDirectories)
        {
            FastZip fastZip = new FastZip();
            fastZip.CreateEmptyDirectories = isCreateEmptyDirectories;
            fastZip.Password = password;
            fastZip.CreateZip(zipedFileName, folderToZip, isRecurse, fileRegexFilter, directoryRegexFilter);
        }

解壓縮

  private void skinButton2_Click(object sender, EventArgs e)
        {
            filesUploadFor.UnZip(zipedfilename.Text,"");
             filesUploadFor.DisplaylistboxMsg("解壓縮完成");
        }

UnZip

解壓用的是庫函數(shù)

        /// <summary>  
        /// 功能:解壓zip格式的文件。  
        /// </summary>  
        /// <param name="zipFilePath">壓縮文件路徑</param>  
        /// <param name="unZipDir">解壓文件存放路徑,為空時(shí)默認(rèn)與壓縮文件同一級目錄下,跟壓縮文件同名的文件夾</param>  
        /// <returns>解壓是否成功</returns>  
        public void UnZip(string zipFilePath, string unZipDir)
        {
            if (zipFilePath == string.Empty)
            {
                throw new Exception("壓縮文件不能為空!");
            }
            if (!File.Exists(zipFilePath))
            {
                throw new FileNotFoundException("壓縮文件不存在!");
            }
            //解壓文件夾為空時(shí)默認(rèn)與壓縮文件同一級目錄下,跟壓縮文件同名的文件夾  
            if (unZipDir == string.Empty)
                unZipDir = zipFilePath.Replace(Path.GetFileName(zipFilePath), Path.GetFileNameWithoutExtension(zipFilePath));
            if (!unZipDir.EndsWith("/"))
                unZipDir += "/";
            if (!Directory.Exists(unZipDir))
                Directory.CreateDirectory(unZipDir);
 
            using (var s = new ZipInputStream(File.OpenRead(zipFilePath)))
            {
 
                ZipEntry theEntry;
                while ((theEntry = s.GetNextEntry()) != null)
                {
                    string directoryName = Path.GetDirectoryName(theEntry.Name);
                    string fileName = Path.GetFileName(theEntry.Name);
                    if (!string.IsNullOrEmpty(directoryName))
                    {
                        Directory.CreateDirectory(unZipDir + directoryName);
                    }
                    if (directoryName != null && !directoryName.EndsWith("/"))
                    {
                    }
                    if (fileName != String.Empty)
                    {
                        using (FileStream streamWriter = File.Create(unZipDir + theEntry.Name))
                        {
 
                            int size;
                            byte[] data = new byte[2048];
                            while (true)
                            {
                                size = s.Read(data, 0, data.Length);
                                if (size > 0)
                                {
                                    streamWriter.Write(data, 0, size);
                                }
                                else
                                {
                                    break;
                                }
                            }
                        }
                    }
                }
            }
        }

到此這篇關(guān)于C#實(shí)現(xiàn)文件壓縮與解壓功能的示例代碼的文章就介紹到這了,更多相關(guān)C#文件壓縮與解壓縮內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論