internal static ZipIOZip64EndOfCentralDirectoryBlock CreateNew(ZipIOBlockManager blockManager) { ZipIOZip64EndOfCentralDirectoryBlock block = new ZipIOZip64EndOfCentralDirectoryBlock(blockManager); block._size = 0; // brand new created records are optional by definition untill UpdateReferences is called, so size must be 0 block._offset = 0; block._dirtyFlag = false; // initialize fields with ythe data from the EOCD block.InitializeFromEndOfCentralDirectory(blockManager.EndOfCentralDirectoryBlock); return(block); }
internal static ZipIOZip64EndOfCentralDirectoryBlock SeekableLoad(ZipIOBlockManager blockManager) { ZipIOZip64EndOfCentralDirectoryLocatorBlock zip64endOfCentralDirectoryLocator = blockManager.Zip64EndOfCentralDirectoryLocatorBlock; long zip64EndOfCentralDirectoryOffset = zip64endOfCentralDirectoryLocator.OffsetOfZip64EndOfCentralDirectoryRecord; ZipIOZip64EndOfCentralDirectoryBlock block = new ZipIOZip64EndOfCentralDirectoryBlock(blockManager); blockManager.Stream.Seek(zip64EndOfCentralDirectoryOffset, SeekOrigin.Begin); block.ParseRecord(blockManager.BinaryReader, zip64EndOfCentralDirectoryOffset); return(block); }
//------------------------------------------------------ // // Internal Methods // //------------------------------------------------------ internal static ZipIOCentralDirectoryBlock SeekableLoad(ZipIOBlockManager blockManager) { // get proper values from zip 64 records request will be redirected to the // regular EOCD if ZIP 64 record wasn't originated from the parsing ZipIOZip64EndOfCentralDirectoryBlock zip64EOCD = blockManager.Zip64EndOfCentralDirectoryBlock; blockManager.Stream.Seek(zip64EOCD.OffsetOfStartOfCentralDirectory, SeekOrigin.Begin); ZipIOCentralDirectoryBlock block = new ZipIOCentralDirectoryBlock(blockManager); block.ParseRecord(blockManager.BinaryReader, zip64EOCD.OffsetOfStartOfCentralDirectory, zip64EOCD.TotalNumberOfEntriesInTheCentralDirectory, zip64EOCD.SizeOfCentralDirectory); return(block); }
internal static ZipIOZip64EndOfCentralDirectoryBlock CreateNew(ZipIOBlockManager blockManager) { ZipIOZip64EndOfCentralDirectoryBlock block = new ZipIOZip64EndOfCentralDirectoryBlock(blockManager); block._size = 0; // brand new created records are optional by definition untill UpdateReferences is called, so size must be 0 block._offset = 0; block._dirtyFlag = false; // initialize fields with ythe data from the EOCD block.InitializeFromEndOfCentralDirectory(blockManager.EndOfCentralDirectoryBlock); return block; }
internal static ZipIOZip64EndOfCentralDirectoryBlock SeekableLoad (ZipIOBlockManager blockManager) { ZipIOZip64EndOfCentralDirectoryLocatorBlock zip64endOfCentralDirectoryLocator = blockManager.Zip64EndOfCentralDirectoryLocatorBlock; long zip64EndOfCentralDirectoryOffset = zip64endOfCentralDirectoryLocator.OffsetOfZip64EndOfCentralDirectoryRecord; ZipIOZip64EndOfCentralDirectoryBlock block = new ZipIOZip64EndOfCentralDirectoryBlock(blockManager); blockManager.Stream.Seek(zip64EndOfCentralDirectoryOffset, SeekOrigin.Begin); block.ParseRecord(blockManager.BinaryReader, zip64EndOfCentralDirectoryOffset); return block; }