nuget安装SharpZipLib
/// <summary>
/// 压缩zip并设置密码
/// </summary>
/// <param name="sourceDir">要压缩的目录</param>
/// <param name="zipFile">压缩后zip存放地址</param>
/// <param name="password">密码</param>
public static void CreateZipPwd(string sourceDir, string zipFile, string password)
{
    if (File.Exists(zipFile)) File.Delete(zipFile);

    using (FileStream fs = new FileStream(zipFile, FileMode.Create))
    using (ZipOutputStream zipOut = new ZipOutputStream(fs))
    {
        zipOut.Password = password;
        zipOut.UseZip64 = UseZip64.On;
        zipOut.SetLevel(Deflater.DEFAULT_COMPRESSION);

        AddDirectoryToZip(zipOut, sourceDir, sourceDir);
    }
}
private static void AddDirectoryToZip(ZipOutputStream zipOut, string currentDir, string rootDir)
{
    foreach (string file in Directory.GetFiles(currentDir))
    {
        FileInfo fi = new FileInfo(file);
        string relPath = Path.GetRelativePath(rootDir, file).Replace("\\", "/");

        ZipEntry entry = new ZipEntry(relPath);
        entry.DateTime = fi.LastWriteTime;
        entry.Size = fi.Length;

        zipOut.PutNextEntry(entry);

        using (FileStream fs = fi.OpenRead())
            fs.CopyTo(zipOut);

        zipOut.CloseEntry();
    }

    foreach (string dir in Directory.GetDirectories(currentDir))
        AddDirectoryToZip(zipOut, dir, rootDir);
}

demo

 string sourceDir = "E:\\2026";
 string zipFile = "E:\\2026-01.zip";
 string password = "123456";
 CreateZipPwd(sourceDir, zipFile, password);

 

posted on 2026-05-28 17:35  邢帅杰  阅读(18)  评论(0)    收藏  举报