最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)與壓縮文件同一級(jí)目錄下,跟壓縮文件同名的文件夾</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)與壓縮文件同一級(jí)目錄下,跟壓縮文件同名的文件夾  
            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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 分享WCF聊天程序--WCFChat實(shí)現(xiàn)代碼

    分享WCF聊天程序--WCFChat實(shí)現(xiàn)代碼

    無意中在一個(gè)國外的站點(diǎn)下到了一個(gè)利用WCF實(shí)現(xiàn)聊天的程序,作者是:Nikola Paljetak。研究了一下,自己做了測(cè)試和部分修改,感覺還不錯(cuò),分享給大家
    2015-11-11
  • C#實(shí)現(xiàn)藍(lán)牙連接、數(shù)據(jù)收發(fā)與文件傳輸功能

    C#實(shí)現(xiàn)藍(lán)牙連接、數(shù)據(jù)收發(fā)與文件傳輸功能

    在軟件開發(fā)中,跨設(shè)備通信已經(jīng)成為一種常見需求,尤其是在工業(yè)控制、智能家居、醫(yī)療設(shè)備等領(lǐng)域,藍(lán)牙通信因其低功耗、短距離、高安全性等優(yōu)點(diǎn),被廣泛應(yīng)用于各類桌面和移動(dòng)應(yīng)用中,本文將詳細(xì)介紹C#如何實(shí)現(xiàn)藍(lán)牙連接、數(shù)據(jù)收發(fā)與文件傳輸功能,需要的朋友可以參考下
    2025-05-05
  • C# WinForm窗體編程中處理數(shù)字的正確操作方法

    C# WinForm窗體編程中處理數(shù)字的正確操作方法

    這篇文章主要介紹了C# WinForm窗體編程中處理數(shù)字的正確操作方法,本文給出了正確示例,并解釋了為什么要這么做,需要的朋友可以參考下
    2014-08-08
  • C# OpenFileDialog對(duì)話框控件的使用

    C# OpenFileDialog對(duì)話框控件的使用

    OpenFileDialog是C#中常用的對(duì)話框控件,用于讓用戶選擇文件,本文就來介紹一下OpenFileDialog對(duì)話框控件的具體使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • WPF自定義控件的實(shí)現(xiàn)

    WPF自定義控件的實(shí)現(xiàn)

    本文主要介紹了WPF自定義控件的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 在C# WinForm應(yīng)用中實(shí)現(xiàn)多語種切換功能

    在C# WinForm應(yīng)用中實(shí)現(xiàn)多語種切換功能

    本文將介紹如何在一個(gè)WinForm應(yīng)用程序中實(shí)現(xiàn)多語種切換,通過一個(gè)簡單的示例,你將了解到如何使用資源文件管理不同語言的文本,并通過用戶界面實(shí)現(xiàn)語言切換,需要的朋友可以參考下
    2024-06-06
  • C#實(shí)現(xiàn)飛行棋項(xiàng)目

    C#實(shí)現(xiàn)飛行棋項(xiàng)目

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)飛行棋項(xiàng)目,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • C#無限欄目分級(jí)程序代碼分享 好東西

    C#無限欄目分級(jí)程序代碼分享 好東西

    C#無限欄目分級(jí)程序代碼分享 好東西...
    2006-12-12
  • C#操作串口通信協(xié)議Modbus的常用方法介紹

    C#操作串口通信協(xié)議Modbus的常用方法介紹

    這篇文章介紹了C#操作串口通信協(xié)議Modbus的常用方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • WPF+WriteableBitmap實(shí)現(xiàn)高性能曲線圖的繪制

    WPF+WriteableBitmap實(shí)現(xiàn)高性能曲線圖的繪制

    這篇文章主要為大家詳細(xì)介紹了如何利用WPF+WriteableBitmap實(shí)現(xiàn)高性能曲線圖的繪制,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下
    2022-08-08

最新評(píng)論

房产| 米林县| 松原市| 兰西县| 临沂市| 九江市| 临湘市| 云安县| 六安市| 福建省| 施秉县| 太白县| 宁陵县| 克东县| 贵定县| 宣武区| 依安县| 石狮市| 皋兰县| 拜泉县| 长宁区| 乌审旗| 马鞍山市| 卓尼县| 芮城县| 呼伦贝尔市| 津市市| 揭西县| 柯坪县| 富阳市| 拜泉县| 定边县| 资溪县| 克拉玛依市| 合作市| 平和县| 渭源县| 雷山县| 同心县| 贞丰县| 斗六市|