使用密码在.net中创建zip文件

Ham*_*ago 12 .net c# passwords zip

我正在开发一个项目,我需要在c#中创建受密码保护的zip文件内容.

在我使用System.IO.Compression.GZipStream创建gzip内容之前..net是否具有create zip或rar密码保护文件的任何功能?

Man*_*mer 8

不幸的是,框架中没有这样的功能。有一种方法可以制作 ZIP 文件,但不需要密码。如果您想在 C# 中创建受密码保护的 ZIP 文件,我推荐SevenZipSharp。它基本上是 7-Zip 的托管包装。

SevenZipBase.SetLibraryPath(Path.Combine(
        Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? Environment.CurrentDirectory,
        "7za.dll"));

SevenZipCompressor compressor = new SevenZipCompressor();

compressor.Compressing += Compressor_Compressing;
compressor.FileCompressionStarted += Compressor_FileCompressionStarted;
compressor.CompressionFinished += Compressor_CompressionFinished;

string password = @"whatever";
string destinationFile = @"C:\Temp\whatever.zip";
string[] sourceFiles = Directory.GetFiles(@"C:\Temp\YourFiles\");

if (String.IsNullOrWhiteSpace(password))
{
    compressor.CompressFiles(destinationFile, sourceFiles);
}
else
{
    //optional
    compressor.EncryptHeaders = true;
    compressor.CompressFilesEncrypted(destinationFile, password, sourceFiles);
}
Run Code Online (Sandbox Code Playgroud)


LCJ*_*LCJ 7

DotNetZip以干净的方式工作得很好。

DotNetZip is a FAST, FREE class library and toolset for manipulating zip files.
Run Code Online (Sandbox Code Playgroud)

代码

static void Main(string[] args)
{
        using (ZipFile zip = new ZipFile())
        {

            zip.Password = "mypassword";

            zip.AddDirectory(@"C:\Test\Report_CCLF5\");
            zip.Save(@"C:\Test\Report_CCLF5_PartB.zip");
        }
 }
Run Code Online (Sandbox Code Playgroud)


Jan*_*997 5

看看DotNetZip

它有很好的geat文档,它还允许你在运行时加载dll作为嵌入文件.

  • https://www.nuget.org/packages/DotNetZip“ 3个月前的最新更新”,我认为它仍然保持着。 (2认同)