标签: dotnetzip

如何验证多部分压缩(即 zip)文件在 C# 中是否包含所有部分?

我想验证像 Zip 这样的多部分压缩文件,因为当压缩文件缺少任何部分时,它会引发错误,但我想在提取之前验证它,不同的软件会创建不同的命名结构。

我还提到了一个与DotNetZip相关的问题。

下面的截图来自 7z 软件。

在此处输入图片说明

第二个屏幕截图来自 C# 的 DotNetZip。

在此处输入图片说明

还有一件事是我还想测试它是否也已损坏或不像 7z 软件。请参阅下面的屏幕截图了解我的要求。

在此处输入图片说明

请帮我解决这些问题。

c# zip 7zip dotnetzip compressed-files

8
推荐指数
1
解决办法
528
查看次数

DotNetZip ExtractProgress Bug?

ExtractProgressEventArgs.EntriesTotalExtractProgressEventArgs.EntriesExtracted始终为零.这是一个已知的错误?请参阅下面的代码:

public static void UnZip(string zipFile, string destination)
{
    using(ZipFile zip = ZipFile.Read(zipFile))
    {                
        zip.ExtractProgress += new EventHandler<ExtractProgressEventArgs>(zip_ExtractProgress);

        foreach (ZipEntry entry in zip)
        {
            entry.Extract(destination, ExtractExistingFileAction.OverwriteSilently);                    
        }
        Console.WriteLine("DONE");
    }
}

static void zip_ExtractProgress(object sender, ExtractProgressEventArgs e)
{
    if(e.EventType == ZipProgressEventType.Extracting_AfterExtractEntry)
        Console.WriteLine(String.Format("{0} : {1} / {2} = {3}%", e.CurrentEntry.FileName, e.EntriesTotal, e.EntriesExtracted, ((double)e.EntriesTotal / (double)e.EntriesExtracted) * 100.00));
}
Run Code Online (Sandbox Code Playgroud)

.net c# dotnetzip

7
推荐指数
1
解决办法
1916
查看次数

DotNetZip - 在C#中调用Save(流)之前计算最终的zip大小

使用DotNetZip时,是否可以在调用Save(流)之前获得最终的zip文件大小?我有一个应用程序(Window Service),其中包的Stream大小超过100MB,然后将保存包并将即将发布的文件添加到新包中.

对Web应用程序同样的问题,但不理解答案.在保存在I/O系统之前,有没有办法让DotnetZip找到zip流的大小?

c# dotnetzip

7
推荐指数
1
解决办法
6435
查看次数

如何在Xamarin表单中解压缩下载的Zip文件

在我的应用程序中,我在My API调用期间收到包含4个pdf文档的ZIP文件.我正在使用以下代码保存ZIP文件.

var rootFolder = FileSystem.Current.LocalStorage;
var file = await rootFolder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);

using (var fileHandler = await file.OpenAsync(FileAccess.ReadAndWrite))
{
    await fileHandler.WriteAsync(document, 0, document.Length);
}
Run Code Online (Sandbox Code Playgroud)

保存文档后,

我如何解压缩并单独将pdf文档保存到手机内存中.任何人都可以指示我解决这个问题.我找到了SharpZipLib和Iconic zip库来解压缩代码; 但是如果在文档中找到了dot net实现,则不知道如何在Xamarin Forms中集成它.

请帮忙.

sharpziplib dotnetzip xamarin xamarin.forms

7
推荐指数
1
解决办法
2659
查看次数

加密档案中的文件名,防止在 C# 中使用 ionic.zip 显示内容列表

我知道用 ionic.zip 压缩文件,如下所示:

using (var zip = new ZipFile())
{
    zip.Encryption = EncryptionAlgorithm.WinZipAes256;
    zip.Password = "123";
    zip.AddDirectory("/path/");
    zip.SaveProgress += Zip_ProgressBar;
    zip.Save("/path/");
}
Run Code Online (Sandbox Code Playgroud)

但这段代码允许人们查看加密的文件和文件夹名称。如何防止存档(加密)文件和文件夹名称出现?

encryption dotnetzip ionic-zip

7
推荐指数
0
解决办法
2025
查看次数

是否有一个c#的zip库比DotNetZip更快

我目前正在使用Ionic zip librar y.我很好奇是否比这更快?

只要它具有更快的压缩算法,我就不在乎它使用什么.

.net c# compression zip dotnetzip

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

如何使用DotNetZip从zip中提取XML文件

我正在使用最新版本的DotNetZip,我有一个包含5个XML的zip文件.
我想打开zip,读取XML文件并使用XML的值设置String.
我怎样才能做到这一点?

码:

//thats my old way of doing it.But I needed the path, now I want to read from the memory
string xfile = System.IO.File.ReadAllText(strNewFilePath, System.Text.Encoding.Default);

using (ZipFile zip = ZipFile.Read(this.uplZip.PostedFile.InputStream))
{
    foreach (ZipEntry theEntry in zip)
    {
        //What should I use here, Extract ?
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢

c# xml zip dotnetzip

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

有没有办法用另一个库解压缩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
查看次数

如何减少提取文件所需的时间?

我在C#中创建了一个程序,它处理了大约30个压缩文件夹,总共有35000个文件.我的目的是读取每个文件以处理其信息.截至目前,我的代码提取所有文件夹,然后读取文件.这个过程的问题是它需要大约15-20分钟,这是很多.

我使用以下代码来提取文件:

void ExtractFile(string zipfile, string path)
{
    ZipFile zip = ZipFile.Read(zipfile);
    zip.ExtractAll(path);
}
Run Code Online (Sandbox Code Playgroud)

提取部分是花费最多时间处理的部分.我需要减少这个时间.有没有办法我可以读取压缩文件夹中的文件内容而不提取它们?或者,如果有人知道任何其他方式可以帮助我减少此代码的时间?

提前致谢

c# extract zipfile dotnetzip

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

为什么Windows 7无法从使用DotNetZip创建的受密码保护的zip文件中提取文件?

我正在使用DotNetZip创建一个受密码保护的zip文件.当我尝试提取文件时,我遇到了"未指定的错误".这是为什么?

using (var zipFile = new ZipFile())
{
    zipFile.Encryption = EncryptionAlgorithm.WinZipAes256;
    zipFile.Password = "pangolin";

    foreach(var file in someFileCollection)
    {
        zipFile.AddEntry(file.Name, file.Stream);
    }

    zipFile.Save(aPathOnDisk);
}
Run Code Online (Sandbox Code Playgroud)

.net c# dotnetzip

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