diff --git a/Src/HitmanExtractor/Program.cs b/Src/HitmanExtractor/Program.cs index 6be6aa1..e4f52be 100644 --- a/Src/HitmanExtractor/Program.cs +++ b/Src/HitmanExtractor/Program.cs @@ -9,6 +9,8 @@ namespace HitmanExtractor { public static class Program { + private static readonly List FoundFileType = new List(); + class HitmanException : Exception { public HitmanException(string message) @@ -162,6 +164,9 @@ private static List BuildFileEntryList(BinaryReader binaryReader) var fileEntry = fileEntries[i]; fileEntry.FileType = fileType; + + if (!FoundFileType.Contains(fileType)) FoundFileType.Add(fileType); + fileEntry.DecompressedFileSize = decompressedSize; fileEntry.FileTable2EntryOffset = (ulong)fileTableOffset; @@ -195,7 +200,7 @@ private static void ListFileEntryList(List fileEntryList, List fileEntryList, string outputDirectory, List filters) { - Directory.CreateDirectory(outputDirectory); + foreach (var extension in FoundFileType) Directory.CreateDirectory($"{outputDirectory}/{new string(extension.ToCharArray().Reverse().ToArray())}"); foreach (var fileEntry in fileEntryList) { @@ -229,7 +234,7 @@ private static void ExtractFileEntryList(BinaryReader binaryReader, List {fileEntry.Hash:X16} @ {fileEntry.FileOffset} (IsCompressed: {fileEntry.IsCompressed} | IsEncrypted: {fileEntry.IsEncrypted} | Size: {fileEntry.CompressedFileSize} / {fileEntry.DecompressedFileSize})"