diff --git a/BinaryObjectScanner/FileType/MicrosoftCAB.cs b/BinaryObjectScanner/FileType/MicrosoftCAB.cs index efea2cf7..499e5ddd 100644 --- a/BinaryObjectScanner/FileType/MicrosoftCAB.cs +++ b/BinaryObjectScanner/FileType/MicrosoftCAB.cs @@ -60,7 +60,14 @@ namespace BinaryObjectScanner.FileType byte[] fileData = new byte[compressedFile.FileSize]; Array.Copy(ms.ToArray(), compressedFile.FolderStartOffset, fileData, 0, compressedFile.FileSize); - string tempFile = Path.Combine(outDir, compressedFile.Name!); + // Ensure directory separators are consistent + string fileName = compressedFile.Name!; + if (Path.DirectorySeparatorChar == '\\') + fileName = fileName.Replace('/', '\\'); + else if (Path.DirectorySeparatorChar == '/') + fileName = fileName.Replace('\\', '/'); + + string tempFile = Path.Combine(outDir, fileName); var directoryName = Path.GetDirectoryName(tempFile); if (directoryName != null && !Directory.Exists(directoryName)) Directory.CreateDirectory(directoryName);