标签: dotnetzip

使用Ionic Zip Library将文件夹添加到Zip的根目录

我正在尝试做的是使用Ionic Zip库(c#)将文件夹和文件列表全部添加到我的Zip文件的根目录中.

这是我到目前为止所拥有的

string k = "B:/My Documents/Workspace";
private void button1_Click(object sender, EventArgs e)
{
   using (ZipFile zip = new ZipFile())
   {   
       //add directory, give it a name
       zip.AddDirectory(k);
       zip.Save("t.zip");
   }
}
Run Code Online (Sandbox Code Playgroud)

现在,我希望我的拉链看起来像这样.

  • t.zip
    • 随机文件和文件夹

但它看起来像这样.

  • t.zip
    • t(文件夹)
      • 随机文件和文件夹

任何帮助将不胜感激,谢谢.

c# zip dotnetzip

6
推荐指数
1
解决办法
2万
查看次数

有没有办法用另一个库解压缩DynaZip Max文件?FE DotNetZip

我有一个数据库,我们使用以下代码存储使用DynaZip Max Secure压缩的pdf文件:

MemoryStream msIN = new System.IO.MemoryStream();   //Input MemoryStream
MemoryStream msZip = new System.IO.MemoryStream();  //Compressed MemoryStream
BinaryReader objBinaryReader;
BinaryWriter objBinaryWriter;


public MemoryStream CompressStream(byte[] vbuf)
{
    System.IO.BinaryWriter bw = new System.IO.BinaryWriter(msIN);
    bw.Write(vbuf);
    CDZipSNET dz1 = new CDZipSNET();
    dz1.ZipMemToMemCallback += new CDZipSNET.OnZipMemToMemCallback(this.ZipMemToMemCallback_event);
    dz1.ActionDZ = CDZipSNET.DZACTION.ZIP_MEMTOMEM;
    return msZip;
}
Run Code Online (Sandbox Code Playgroud)

这是ZipMemToMemCallback_event代码:

public void ZipMemToMemCallback_event(CDZipSNET.MEMTOMEMACTION lAction,ref byte[] lpMemBuf,ref uint pdwSize,uint dwTotalReadL,uint dwTotalReadH,uint dwTotalWrittenL,uint dwTotalWrittenH,ref CDZipSNET.MEMTOMEMRESPONSE plRet)
{
    int bytesToRead;

    switch(lAction)
    {
        case CDZipSNET.MEMTOMEMACTION.MEM_READ_DATA:
            if((dwTotalReadL == 0) && (dwTotalReadH == 0))
            {
                msIN.Seek(0, System.IO.SeekOrigin.Begin);
                objBinaryReader …
Run Code Online (Sandbox Code Playgroud)

c# zip gzip zlib dotnetzip

6
推荐指数
1
解决办法
1214
查看次数

DotNetZip与俄语编码有关

我在我的项目中使用DotNetZip.

using (var zip = new ZipFile()) 
{ 
   zip.ProvisionalAlternateEncoding = System.Text.Encoding.GetEncoding(866); 
   zip.AddFile(filename, "directory\\in\\archive"); 
   zip.Save("archive.zip"); 
} 
Run Code Online (Sandbox Code Playgroud)

一切都好,但是当我使用方法AddDirectoryByName我有一个错误的目录名称.

.net c# dotnetzip

5
推荐指数
2
解决办法
5248
查看次数

Ionic.Zip(DotNetZip)在使用IO.MemoryStream的save方法中挂起

我将尝试使用带有106个图像(675MB)的DotNetZip-Libary创建一个zip文件,其代码如下:

Public Function GetZip() As Byte()
    Dim zip As New Ionic.Zip.ZipFile(String.Format("{0}.zip", Me.GallerySystemName))
    AddHandler zip.SaveProgress, AddressOf SaveProgress

    For Each img In Me.Images
        zip.AddFile(img.OriginalFile.FullName, "")
    Next

    Dim bytZip As Byte()

    Using ms As New MemoryStream
        zip.Save(ms)
        bytZip = ms.ToArray
    End Using

    Return bytZip
End Function
Run Code Online (Sandbox Code Playgroud)

当我运行这段代码时,执行会停止在图像40(有时更早)没有任何执行.什么都没发生.我试图将zip直接保存到文件中.有用.

有任何想法吗?

一月

vb.net memorystream dotnetzip

5
推荐指数
2
解决办法
6795
查看次数

如何在c#中优化或限制zip使用(DotNetZip)的CPU使用率?

美好的一天

我有一个应用程序,我用它来存档使用DotNetZip库的文件夹.我注意到,当它进入实际的"压缩"过程时,它占用了100%的CPU.这个应用程序将与另一个(一个TCP聊天应用程序)一起使用,所以我真的需要这个使用尽可能少的CPU.

有什么办法可以安全地限制cpu吗?我试过降低优先级,但没有什么区别.我现在唯一能做的就是将亲和力设置为1核心,使其使用50%.但当然这只适用于多核计算机.

c# cpu-usage dotnetzip

5
推荐指数
2
解决办法
6635
查看次数

在尝试从内部Zip文件(另一个Zip中的Zip)获取流时,获取"无法将其作为Zip文件读取"异常

在C#中,我使用的是DotNetZip 我有一个名为"innerZip.zip"的zip包含一些数据,另一个名为"outerZip.zip"的zip包含innerZip.为什么我这样做?好吧,在设置密码时,密码实际上适用于添加到存档而不是整个存档的各个条目,通过使用这个内部/外部组合,我可以设置传递到整个内部zip,因为它是一个条目外面的.

问题是,代码说得比普通词更好:

ZipFile outerZip = ZipFile.Read("outerZip.zip");
outerZip.Password = "VeXe";
Stream innerStream = outerZip["innerZip.zip"].OpenReader();
ZipFile innerZip = ZipFile.Read(innerStream); // I'm getting the exception here.
innerZip["Songs\\IronMaiden"].Extract(tempLocation);
Run Code Online (Sandbox Code Playgroud)

为什么我得到那个例外?内部文件是一个zip文件,所以我不应该得到那个例外吗?有没有办法绕过这个或者我只需要从外部提取内部,然后访问它?

Thanx提前..

c# dotnetzip

5
推荐指数
1
解决办法
5700
查看次数

如何使用dotnetzip检查zip文件中是否存在文件

我正在使用dotnetzip库创建zip.

但我不知道如何检查zip中是否存在文件.如果该文件存在,那么我将使用路径更新该文件.

    public void makezip(string flname)
   {
      string  fln =flname;
        string curFile = @"d:\crs.zip";
        if (File.Exists(curFile))
        {
                ZipFile zipfl = ZipFile.Read(@"D:\crs.zip");
            var result = zipfl.Any(entry => entry.FileName.EndsWith(@fln));
            if (result == true) {
                zipfl.UpdateFile(@fln);
                }else{
                  zipfl.AddFile(@fln);
                }
            zipfl.Save(@"d:\crs.zip");
        }
        else
        {
            try
            {
                ZipFile zipfl = new ZipFile();

                var result = zipfl.Any(entry => entry.FileName.EndsWith(@fln));
                if (result == true)
                {
                  zipfl.AddFile(@fln);
                }
                zipfl.Save(@"d:\crs.zip");
            }catch {
                MessageBox.Show("Invalid Zip File");

            }}}
Run Code Online (Sandbox Code Playgroud)

c# compression dotnetzip

5
推荐指数
2
解决办法
1万
查看次数

在MVC中使用memorystream和DotNetZip给出"无法访问封闭的流"

我正在尝试使用DotNetZip组件在MVC方法中创建一个zipfile.

这是我的代码:

    public FileResult DownloadImagefilesAsZip()
    {
        using (var memoryStream = new MemoryStream())
        {
            using (var zip = new ZipFile())
            {
                zip.AddDirectory(Server.MapPath("/Images/"));
                zip.Save(memoryStream);

                return File(memoryStream, "gzip", "images.zip");
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到一个"无法访问关闭的流"错误,我不知道为什么.

asp.net-mvc dotnetzip

5
推荐指数
1
解决办法
5171
查看次数

如何安装DotNetZip?

由于我是Visual Studio的新手,这个问题可能听起来有点愚蠢:我如何安装DotNetZip库?我正在使用Visual Studio Express 2012 for Windows Desktop.

dll installation dotnetzip visual-studio-2012

5
推荐指数
1
解决办法
1万
查看次数

C# DotNetZip 错误:尚未计算最终哈希。在 Ionic.Zip.WinZipAesCipherStream.get_FinalAuthentication()

大多数情况下,这段代码都可以工作,但是,大约有 1/3 的时间,它通过了大约 80% 的时间并失败了。解压缩 x 射线图像文件时解压缩失败。(它们是没有文件扩展名的编号文件。)它似乎在大部分时间都能处理它们,但是,每隔一段时间就会有一个无法解压缩的 X 射线。当它在文件上失败时,它会给它一个带有随机扩展名的随机文件名。它似乎在解压缩时遇到了它不理解的字符组合。

它特别发生在 aes 加密的 zip 文件中。如果他们发送没有 aes 加密压缩的相同文件,那么程序会很好地解压缩它们。

当我使用 7zip 应用程序手动解压缩同一个 zip 文件时,我输入了相同的密码并且它工作得很好。

前任。文件应该是:00043 ==> 解压失败产生:1hzcqoee.nss

错误信息:

尚未计算最终散列。

堆栈跟踪:

在 Ionic.Zip.WinZipAesCipherStream.get_FinalAuthentication() 在 Ionic.Zip.ZipEntry.VerifyCrcAfterExtract(Int32calculatedCrc32, EncryptionAlgorithm encryptionAlgorithm, Int32 expectedCrc32, Stream archiveStream, Int64 uncompressedSize) at Ionic.Zip. encryptionAlgorithm, Int32 expectedCrc32) at Ionic.Zip.ZipEntry.InternalExtractToBaseDir(String baseDir, String password, ZipContainer zipContainer, ZipEntrySource zipEntrySource, String fileName) at Ionic.Zip.ZipFile._InternalExtractAll(String path, Boolean overrideExtractExistingNewPropertySystemsZip4) at Ionic.Zip.ZipEntry.InternalExtractToBaseDir(String baseDir, String password, ZipContainer zipContainer, ZipEntrySource zipEntrySource, String fileName) (字符串 zipToUnpack,字符串 unpackDirectory)

代码:

using Ionic.Zip;
public bool ExtractZip(string …
Run Code Online (Sandbox Code Playgroud)

c# zip hashcode zipfile dotnetzip

5
推荐指数
1
解决办法
632
查看次数