static public TryReadBlock ( BinaryReader reader, bool saveExtraFieldsAndComments, |
||
reader | BinaryReader | |
saveExtraFieldsAndComments | bool | |
header | ||
Результат | bool |
private void ReadCentralDirectory() { try { //assume ReadEndOfCentralDirectory has been called and has populated _centralDirectoryStart _archiveStream.Seek(_centralDirectoryStart, SeekOrigin.Begin); long numberOfEntries = 0; //read the central directory ZipCentralDirectoryFileHeader currentHeader; bool saveExtraFieldsAndComments = Mode == ZipArchiveMode.Update; while (ZipCentralDirectoryFileHeader.TryReadBlock(_archiveReader, saveExtraFieldsAndComments, out currentHeader)) { AddEntry(new ZipArchiveEntry(this, currentHeader)); numberOfEntries++; } if (numberOfEntries != _expectedNumberOfEntries) { throw new InvalidDataException(SR.NumEntriesWrong); } } catch (EndOfStreamException ex) { throw new InvalidDataException(SR.Format(SR.CentralDirectoryInvalid, ex)); } }
private void ReadCentralDirectory() { ZipCentralDirectoryFileHeader zipCentralDirectoryFileHeader; try { this._archiveStream.Seek(this._centralDirectoryStart, SeekOrigin.Begin); long num = (long)0; bool mode = this.Mode == ZipArchiveMode.Update; while (ZipCentralDirectoryFileHeader.TryReadBlock(this._archiveReader, mode, out zipCentralDirectoryFileHeader)) { this.AddEntry(new ZipArchiveEntry(this, zipCentralDirectoryFileHeader)); num += (long)1; } if (num != this._expectedNumberOfEntries) { throw new InvalidDataException(Messages.NumEntriesWrong); } } catch (EndOfStreamException endOfStreamException) { throw new InvalidDataException(Messages.CentralDirectoryInvalid, endOfStreamException); } }