ITADN

Error when extract zip file contains 0-size entry

#1236Closedaaasoft 创建于 2026-02-27
A
aaasoftcommented
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](https://github.com/user-attachments/files/25603280/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 ```
关闭于 2026-03-02 2 条评论