diff --git a/SabreTools.Helper/Tools/FileTools.cs b/SabreTools.Helper/Tools/FileTools.cs index 5645855c..640c787d 100644 --- a/SabreTools.Helper/Tools/FileTools.cs +++ b/SabreTools.Helper/Tools/FileTools.cs @@ -425,7 +425,7 @@ namespace SabreTools.Helper return success; } - ZipArchiveStruct zas = ReadCentralDirectory(inputArchive, logger); + ZipArchiveStruct zas = GetZipFileInfo(inputArchive, logger); Console.WriteLine("Archive Filename: " + zas.FileName); Console.WriteLine("Archive Comment: " + zas.Comment.Length + " " + zas.Comment); Console.WriteLine("Archive Central Directory CRC: " + zas.CentralDirectoryCRC.ToString("X8")); @@ -888,12 +888,15 @@ namespace SabreTools.Helper } /// - /// Read the current directory record + /// Read the information from an input zip file /// /// Name of the input file to check /// Logger object for file and console output - /// This does not do any handling for Zip64 currently - public static ZipArchiveStruct ReadCentralDirectory(string input, Logger logger) + /// + /// This does not do any handling for Zip64 currently + /// https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT + /// + public static ZipArchiveStruct GetZipFileInfo(string input, Logger logger) { // Create the zip archive struct to hold all of the information ZipArchiveStruct zas = new ZipArchiveStruct @@ -999,6 +1002,23 @@ namespace SabreTools.Helper return zas; } + /// + /// Read the information from an input 7z file + /// + /// Name of the input file to check + /// Logger object for file and console output + /// http://cpansearch.perl.org/src/BJOERN/Compress-Deflate7-1.0/7zip/DOC/7zFormat.txt + public static void GetSevenZipFIleInfo(string input, Logger logger) + { + using (BinaryReader br = new BinaryReader(File.OpenRead(input))) + { + br.ReadBytes(6); // BYTE kSignature[6] = {'7', 'z', 0xBC, 0xAF, 0x27, 0x1C}; + logger.User("ArchiveVersion (Major.Minor): " + br.ReadByte() + "." + br.ReadByte()); + logger.User("StartHeaderCRC: " + br.ReadUInt32()); + logger.User("StartHeader (NextHeaderOffset, NextHeaderSize, NextHeaderCRC)" + br.ReadUInt64() + ", " + br.ReadUInt64() + ", " + br.ReadUInt32()); + } + } + #endregion #region File Manipulation