diff --git a/SabreTools.Helper/Tools/ArchiveTools.cs b/SabreTools.Helper/Tools/ArchiveTools.cs index a9be5804..b45afa88 100644 --- a/SabreTools.Helper/Tools/ArchiveTools.cs +++ b/SabreTools.Helper/Tools/ArchiveTools.cs @@ -200,20 +200,19 @@ namespace SabreTools.Helper try { reader = ReaderFactory.Open(File.OpenRead(input)); - logger.Log("Found archive of type: " + at); if (at == ArchiveType.Zip || at == ArchiveType.SevenZip || at == ArchiveType.Rar) { // Create the temp directory Directory.CreateDirectory(tempdir); - IArchiveEntry entry; - while ((entry = reader.Entry as IArchiveEntry) != null) + while (reader.MoveToNextEntry()) { - if (entry.Key.Contains(entryname)) + logger.Log("Current entry name: '" + reader.Entry.Key + "'"); + if (reader.Entry != null && reader.Entry.Key.Contains(entryname)) { - entry.WriteToDirectory(tempdir); - outfile = tempdir + Path.DirectorySeparatorChar + entry.Key; + reader.WriteEntryToFile(tempdir + Path.DirectorySeparatorChar + reader.Entry.Key); + outfile = tempdir + Path.DirectorySeparatorChar + reader.Entry.Key; } } } @@ -259,16 +258,21 @@ namespace SabreTools.Helper if (at != ArchiveType.Tar) { - IArchiveEntry entry; - while ((entry = reader.Entry as IArchiveEntry) != null) + while (reader.MoveToNextEntry()) { - roms.Add(new RomData + if (reader.Entry != null && !reader.Entry.IsDirectory) { - Name = entry.Key, - Game = gamename, - Size = entry.Size, - CRC = entry.Crc.ToString("X"), - }); + logger.Log("Entry found: '" + reader.Entry.Key + "': " + reader.Entry.Size + ", " + reader.Entry.Crc.ToString("X").ToLowerInvariant()); + + roms.Add(new RomData + { + Type = "rom", + Name = reader.Entry.Key, + Game = gamename, + Size = reader.Entry.Size, + CRC = reader.Entry.Crc.ToString("X").ToLowerInvariant(), + }); + } } } } diff --git a/SimpleSort/SimpleSort.cs b/SimpleSort/SimpleSort.cs index 32d3e58a..3278cf61 100644 --- a/SimpleSort/SimpleSort.cs +++ b/SimpleSort/SimpleSort.cs @@ -401,13 +401,15 @@ namespace SabreTools } /// TODO: Implement flag for external scanning only - bool externalScan = false; + bool externalScan = true; if (externalScan) { + _logger.Log("Beginning quick scan of contents from '" + input + "'"); List internalRomData = ArchiveTools.GetArchiveFileInfo(input, _logger); + _logger.Log(internalRomData.Count + " entries found in '" + input + "'"); // If the list is populated, then the file was a filled archive - if (internalRomData.Count >= 0) + if (internalRomData.Count > 0) { foreach (RomData rom in internalRomData) {