Skip to content

Error when extract zip file contains 0-size entry #1236

@aaasoft

Description

@aaasoft

SharpCompress version: 0.46.3

Test code:

using SharpCompress.Archives;

try
{
    var zipFile = "test.zip";
    var outDir = "output";
    if (!Directory.Exists(outDir))
        Directory.CreateDirectory(outDir);
    using (var archive = ArchiveFactory.OpenArchive(zipFile))
    {
        archive.WriteToDirectory(outDir);
    }
    Console.WriteLine("Success");
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}

Test zip file:
test.zip

Test output:

SharpCompress.Compressors.LZMA.DataErrorException: Data Error
   at SharpCompress.Compressors.LZMA.LzmaStream.Read(Byte[] buffer, Int32 offset, Int32 count) in D:\a\sharpcompress\sharpcompress\src\SharpCompress\Compressors\LZMA\LzmaStream.cs:line 305
   at System.IO.Stream.CopyTo(Stream destination, Int32 bufferSize)
   at SharpCompress.Archives.IArchiveEntryExtensions.WriteTo(IArchiveEntry archiveEntry, Stream streamToWriteTo, IProgress`1 progress) in D:\a\sharpcompress\sharpcompress\src\SharpCompress\Archives\IArchiveEntryExtensions.cs:line 28
   at SharpCompress.Archives.IArchiveEntryExtensions.<>c__DisplayClass8_0.<WriteToFile>b__0(String x, FileMode fm) in D:\a\sharpcompress\sharpcompress\src\SharpCompress\Archives\IArchiveEntryExtensions.cs:line 139
   at SharpCompress.Common.ExtractionMethods.WriteEntryToFile(IEntry entry, String destinationFileName, Action`2 openAndWrite) in D:\a\sharpcompress\sharpcompress\src\SharpCompress\Common\ExtractionMethods.cs:line 120
   at SharpCompress.Archives.IArchiveEntryExtensions.WriteToFile(IArchiveEntry entry, String destinationFileName) in D:\a\sharpcompress\sharpcompress\src\SharpCompress\Archives\IArchiveEntryExtensions.cs:line 133
   at SharpCompress.Archives.IArchiveEntryExtensions.<>c__DisplayClass6_0.<WriteToDirectory>b__0(String path) in D:\a\sharpcompress\sharpcompress\src\SharpCompress\Archives\IArchiveEntryExtensions.cs:line 109
   at SharpCompress.Common.ExtractionMethods.WriteEntryToDirectory(IEntry entry, String destinationDirectory, Action`1 write) in D:\a\sharpcompress\sharpcompress\src\SharpCompress\Common\ExtractionMethods.cs:line 85
   at SharpCompress.Archives.IArchiveEntryExtensions.WriteToDirectory(IArchiveEntry entry, String destinationDirectory) in D:\a\sharpcompress\sharpcompress\src\SharpCompress\Archives\IArchiveEntryExtensions.cs:line 106
   at SharpCompress.Archives.IArchiveExtensions.WriteToDirectoryInternal(IArchive archive, String destinationDirectory, IProgress`1 progress) in D:\a\sharpcompress\sharpcompress\src\SharpCompress\Archives\IArchiveExtensions.cs:line 61
   at SharpCompress.Archives.IArchiveExtensions.WriteToDirectory(IArchive archive, String destinationDirectory, IProgress`1 progress) in D:\a\sharpcompress\sharpcompress\src\SharpCompress\Archives\IArchiveExtensions.cs:line 30
   at Program.<Main>$(String[] args) in D:\Code\ConsoleApp2\ConsoleApp2\Program.cs:line 11

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions