用c#压缩

发布于 2024-08-26 14:22:32 字数 229 浏览 10 评论 0原文

我正在尝试使用 GZipStream 使用 C# 创建 gz 文件。 我的问题是我有一个包含字符串的列表。我需要创建一个受密码保护的 zip 文件,并在其中放入一个包含字符串的文本文件。
我不想创建文本文件,然后将其压缩,然后删除该文本文件。我想直接创建一个包含文本文件的受密码保护的 zip 文件。
有什么帮助吗?

编辑:我已经完成了拉链的工作。现在我需要为创建的 zip 文件设置一个pass。有什么帮助吗?

i am trying to use GZipStream to create a gz file using c#.
my problem is that i have a list that contains strings. and i need to create a password protected zip file, and put in it a text file containing the strings.
i don't want to create the textfile, then zip it, and then delete the textfile. i want to directly create a password protected zip file that contains the text file.
any help?

EDIT: i am done with the zipping stuff. now i need to set a pass for the created zip file. any help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

明媚殇 2024-09-02 14:22:32

您应该考虑使用 SharpZipLib。它是一个开源的.net 压缩库。它包括有关如何创建 .gz.zip 文件的示例。请注意,您可以直接写入 .zip 文件。您不需要先在磁盘上创建中间文件。

编辑:(响应您的编辑)SharpZipLib 也支持 zip 密码。

You should consider using SharpZipLib. It's an open source .net compression library. It includes examples on how to create either a .gz or a .zip file. Note that you can write directly to the .zip file. You don't need to create an intermediate file on disk first.

Edit: (in response to your edit) SharpZipLib supports zip passwords too.

舂唻埖巳落 2024-09-02 14:22:32

只需创建一个封装 GZipStream 的 StreamWriter,并向其中写入文本即可。

Just create a StreamWriter wrapping your GZipStream, and write text to it.

稀香 2024-09-02 14:22:32

GZipStream 可用于创建 .gz 文件,但这与 .zip 文件不同。

要创建受密码保护的 zip 文件,我认为您需要使用第三方库。

以下是如何使用 DotNetZip 执行此操作...

var sb = new System.Text.StringBuilder();
sb.Append("This is the text file...");
foreach (var item in listOfStrings)
    sb.Append(item);

// sb now contains all the content that will be placed into
// the text file entry inside the zip.

using (var zip = new Ionic.Zip.ZipFile())
{
    // set the password on the zip (implicitly enables encryption)
    zip.Password = "Whatever.You.Like!!"; 
    // optional: select strong encryption
    zip.Encryption = Ionic.Zip.EncryptionAlgorithm.WinZipAes256;
    // add an entry to the zip, specify a name, specify string content
    zip.AddEntry("NameOfFile.txt", sb.ToString());
    // save the file
    zip.Save("MyFile.zip");
}

GZipStream can be used to create a .gz file, but this is not the same as a .zip file.

For creating password-protected zip files, I think you need to go to a third-party library.

Here's how to do it using DotNetZip...

var sb = new System.Text.StringBuilder();
sb.Append("This is the text file...");
foreach (var item in listOfStrings)
    sb.Append(item);

// sb now contains all the content that will be placed into
// the text file entry inside the zip.

using (var zip = new Ionic.Zip.ZipFile())
{
    // set the password on the zip (implicitly enables encryption)
    zip.Password = "Whatever.You.Like!!"; 
    // optional: select strong encryption
    zip.Encryption = Ionic.Zip.EncryptionAlgorithm.WinZipAes256;
    // add an entry to the zip, specify a name, specify string content
    zip.AddEntry("NameOfFile.txt", sb.ToString());
    // save the file
    zip.Save("MyFile.zip");
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文