internal ZipFileHeader(ZipFileInfo fileInfo, bool zip64) : this() { this.flags = ZipFileFlags.None; this.compressionMethod = fileInfo.CompressionMethod; this.fileName = Path.Combine(fileInfo.Path, fileInfo.Name); CompressionEngine.DateTimeToDosDateAndTime( fileInfo.LastWriteTime, out this.lastModDate, out this.lastModTime); this.zip64 = zip64; if (this.zip64) { this.compressedSize = UInt32.MaxValue; this.uncompressedSize = UInt32.MaxValue; this.diskStart = UInt16.MaxValue; this.versionMadeBy = 45; this.versionNeeded = 45; ZipExtraFileField field = new ZipExtraFileField(); field.fieldType = ZipExtraFileFieldType.ZIP64; field.SetZip64Data( fileInfo.CompressedLength, fileInfo.Length, 0, fileInfo.ArchiveNumber); this.extraFields = new ZipExtraFileField[] { field }; } else { this.compressedSize = (uint)fileInfo.CompressedLength; this.uncompressedSize = (uint)fileInfo.Length; this.diskStart = (ushort)fileInfo.ArchiveNumber; } }
internal ZipFileHeader(ZipFileInfo fileInfo, bool zip64) : this() { this.flags = ZipFileFlags.None; this.compressionMethod = fileInfo.CompressionMethod; this.fileName = Path.Combine(fileInfo.Path, fileInfo.Name); CompressionEngine.DateTimeToDosDateAndTime( fileInfo.LastWriteTime, out this.lastModDate, out this.lastModTime); this.zip64 = zip64; if (this.zip64) { this.compressedSize = UInt32.MaxValue; this.uncompressedSize = UInt32.MaxValue; this.diskStart = UInt16.MaxValue; this.versionMadeBy = 45; this.versionNeeded = 45; ZipExtraFileField field = new ZipExtraFileField(); field.fieldType = ZipExtraFileFieldType.ZIP64; field.SetZip64Data( fileInfo.CompressedLength, fileInfo.Length, 0, fileInfo.ArchiveNumber); this.extraFields = new ZipExtraFileField[] { field }; } else { this.compressedSize = (uint) fileInfo.CompressedLength; this.uncompressedSize = (uint) fileInfo.Length; this.diskStart = (ushort) fileInfo.ArchiveNumber; } }