ArchiveFileRecord tries a little too hard to be efficient. The compression method byte and dosDateTime are implementation details of ZipFileArchive.
Consider splitting ArchiveFileRecord into a generic interface and a ZIP-specific implementation class.