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

C#使用Windows自帶功能將文件夾打包為ZIP

 更新時間:2026年02月25日 09:02:28   作者:Never_Satisfied  
文章介紹了如何在C#中使用System.IO.Compression命名空間將文件夾打包為ZIP文件,并提供了基本用法、高級選項、異常處理、引用命名空間和完整示例,還提到了其他注意事項,如使用第三方庫和異步處理,需要的朋友可以參考下

在 C# 中,可以使用內(nèi)置的 System.IO.Compression 命名空間輕松地將整個文件夾打包為 ZIP 文件。最直接的方法是使用 ZipFile.CreateFromDirectory 方法。

基本用法

using System.IO.Compression;

string sourceFolder = @"C:\SourceFolder";      // 要壓縮的文件夾
string zipFile = @"C:\Archive.zip";            // 生成的 ZIP 文件路徑

ZipFile.CreateFromDirectory(sourceFolder, zipFile);

該方法會將 sourceFolder 中的所有文件和子文件夾遞歸地添加到 ZIP 文件中。

高級選項

CreateFromDirectory 有多個重載,允許你控制壓縮行為:

// 帶 CompressionLevel 和 includeBaseDirectory 參數(shù)的重載
ZipFile.CreateFromDirectory(
    sourceFolder,
    zipFile,
    CompressionLevel.Optimal,   // 壓縮級別(Optimal, Fastest, NoCompression)
    true                        // 是否在 ZIP 中包含源目錄本身作為根目錄
);
  • includeBaseDirectory:如果為 true,則 ZIP 文件中會包含源文件夾本身作為根目錄(即解壓后會出現(xiàn)一個與源文件夾同名的文件夾);如果為 false,則源文件夾下的所有內(nèi)容直接位于 ZIP 根目錄。
  • 還可以使用 EntryNameEncoding 參數(shù)指定文件名編碼,或通過 Overwrite 參數(shù)控制是否覆蓋已存在的 ZIP 文件(在 .NET 6+ 中)。

異常處理

注意捕獲可能的異常,例如:

  • DirectoryNotFoundException:源文件夾不存在。
  • IOException:目標 ZIP 文件已存在且被占用等。
  • UnauthorizedAccessException:無權(quán)限訪問文件。

添加對命名空間的引用

  • .NET Framework 4.5+:需要添加對 System.IO.Compression.FileSystem 的程序集引用。
  • .NET Core / .NET 5+:直接使用 System.IO.Compression 命名空間即可(通常已默認包含)。

完整示例

using System;
using System.IO;
using System.IO.Compression;

class Program
{
    static void Main()
    {
        string folderPath = @"C:\MyFolder";
        string zipPath = @"C:\MyFolder.zip";

        try
        {
            // 檢查源文件夾是否存在
            if (!Directory.Exists(folderPath))
            {
                Console.WriteLine("源文件夾不存在。");
                return;
            }

            // 如果目標 ZIP 文件已存在,可選擇刪除或覆蓋
            if (File.Exists(zipPath))
            {
                File.Delete(zipPath);   // 或者使用 Overwrite 參數(shù)(.NET 6+)
            }

            // 創(chuàng)建 ZIP 文件,不包含基目錄
            ZipFile.CreateFromDirectory(folderPath, zipPath, CompressionLevel.Optimal, false);

            Console.WriteLine($"文件夾已成功打包為:{zipPath}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"出錯:{ex.Message}");
        }
    }
}

其他注意事項

  • 如果需要在壓縮過程中過濾文件、處理大文件或顯示進度,建議使用第三方庫,如 SharpCompressDotNetZip(注意許可證)。
  • 在 ASP.NET 應(yīng)用中,可能需要使用異步方式,可以考慮將 CreateFromDirectory 包裝在 Task.Run 中,或使用 .NET 6+ 提供的異步版本(如 ZipFile.CreateFromDirectoryAsync)。

使用內(nèi)置的 ZipFile 類足以滿足大多數(shù)簡單到中等復(fù)雜度的文件夾打包需求。

到此這篇關(guān)于C#使用Windows自帶功能將文件夾打包為ZIP的文章就介紹到這了,更多相關(guān)C# Windows將文件夾打包為ZIP內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#實現(xiàn)WinForm禁止最大化、最小化、雙擊標題欄、雙擊圖標等操作的方法

    C#實現(xiàn)WinForm禁止最大化、最小化、雙擊標題欄、雙擊圖標等操作的方法

    這篇文章主要介紹了C#實現(xiàn)WinForm禁止最大化、最小化、雙擊標題欄、雙擊圖標等操作的方法,涉及C#使用WinForm針對窗口操作的各種常用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • 詳解LINQ入門(下篇)

    詳解LINQ入門(下篇)

    這篇文章主要介紹了詳解LINQ入門(下篇),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • C#算法設(shè)計之關(guān)于1000瓶水的問題

    C#算法設(shè)計之關(guān)于1000瓶水的問題

    這篇文章主要介紹了C#算法設(shè)計之關(guān)于1000瓶水的問題,是一個比較經(jīng)典的算法問題,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-01-01
  • C#中動態(tài)數(shù)組用法實例

    C#中動態(tài)數(shù)組用法實例

    這篇文章主要介紹了C#中動態(tài)數(shù)組用法,實例分析了C#中ArrayList實現(xiàn)動態(tài)數(shù)組的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • C#用NPOI導(dǎo)出導(dǎo)入Excel幫助類

    C#用NPOI導(dǎo)出導(dǎo)入Excel幫助類

    這篇文章主要為大家詳細介紹了C#?NPOI導(dǎo)出導(dǎo)入Excel幫助類,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C#中使用WinRAR實現(xiàn)加密壓縮及解壓縮文件

    C#中使用WinRAR實現(xiàn)加密壓縮及解壓縮文件

    這篇文章主要介紹了C#中使用WinRAR實現(xiàn)加密壓縮及解壓縮文件,本文直接給出實例代碼,代碼中包含詳細注釋,需要的朋友可以參考下
    2015-07-07
  • C# Codex 腳本編寫功能示例

    C# Codex 腳本編寫功能示例

    該C#示例實現(xiàn)了一個簡單的腳本引擎,支持自定義命令、參數(shù)解析、注釋、字符串參數(shù)和保留執(zhí)行結(jié)果,此示例可展示了基礎(chǔ)框架,可進一步擴展更多復(fù)雜功能,感興趣的朋友一起看看吧
    2026-04-04
  • C#實現(xiàn)異步連接Sql Server數(shù)據(jù)庫的方法

    C#實現(xiàn)異步連接Sql Server數(shù)據(jù)庫的方法

    這篇文章主要介紹了C#實現(xiàn)異步連接Sql Server數(shù)據(jù)庫的方法,涉及C#中await方法的相關(guān)使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04
  • .NET/C# 使用Stopwatch測量運行時間

    .NET/C# 使用Stopwatch測量運行時間

    這篇文章主要介紹了.NET/C# 使用Stopwatch測量運行時間,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • C#實現(xiàn)將Excel表格轉(zhuǎn)換為圖片(JPG/?PNG)

    C#實現(xiàn)將Excel表格轉(zhuǎn)換為圖片(JPG/?PNG)

    Excel表格可能會因為不同設(shè)備或字體缺失等問題,導(dǎo)致格式錯亂或數(shù)據(jù)顯示異常,轉(zhuǎn)換為圖片后,能確保數(shù)據(jù)的排版等保持一致,下面我們看看如何使用C#實現(xiàn)將Excel表格轉(zhuǎn)換為圖片吧
    2025-04-04

最新評論

张家川| 巴青县| 顺平县| 湛江市| 曲周县| 昌平区| 灌南县| 南岸区| 麦盖提县| 天祝| 乐亭县| 高平市| 普格县| 沂南县| 安远县| 神农架林区| 磐石市| 东乌珠穆沁旗| 鹿邑县| 成武县| 南江县| 龙山县| 晋江市| 鄂托克前旗| 延安市| 通江县| 策勒县| 石城县| 揭阳市| 卢龙县| 集贤县| 东安县| 河东区| 古交市| 崇州市| 蓬安县| 襄垣县| 安陆市| 伊吾县| 定结县| 耿马|