Closed donRumatta closed 10 years ago
Temporally, I've added such a check to skip entry:
entry is SevenZipArchiveEntry && entry.Size == 0
But it would be great if decompressing of empty files is performed silently like in rar and zip cases.
I added a null check for streams from OpenEntryStream: https://github.com/adamhathcock/sharpcompress/commit/d1a64021e188e04769517ee7276a3e0690235b2d
Thank you.
I'm using the example:
var archive = ArchiveFactory.Open(item.FullName); foreach (var entry in archive.Entries) { if (!entry.IsDirectory) { entry.WriteToDirectory(@"C:\Research\SharpCompress\SharpCompress\Archives"); } }
Decompressing is done successfully only if file has some content. If it is empty I get NullReferenceException in ListeningStream.Read (Stream is null). As I understand archiveEntry.OpenEntryStream() returns null.
Archive can be downloaded from the same issue posted on CodePlex.
And it is important, that such issue appears only with 7zip, rar and zip are processed without errors.
UPD. the main reason is that file.HasStream = !emptyStreamVector[i]; is false for my archive. How can it be changed to true?