[DATFromDirParallel] Reintroduce proper keys

This commit is contained in:
Matt Nadareski
2016-09-06 22:10:11 -07:00
parent 7e1a2c422c
commit fb7f029d3a

View File

@@ -55,6 +55,7 @@ namespace SabreTools
{ {
_basePath = Path.GetFullPath(basePath); _basePath = Path.GetFullPath(basePath);
_datdata = datdata; _datdata = datdata;
_datdata.Files = new Dictionary<string, List<Rom>>();
_datdata.Files.Add("null", new List<Rom>()); _datdata.Files.Add("null", new List<Rom>());
_noMD5 = noMD5; _noMD5 = noMD5;
_noSHA1 = noSHA1; _noSHA1 = noSHA1;
@@ -205,7 +206,14 @@ namespace SabreTools
// If the rom is valid, write it out // If the rom is valid, write it out
if (rom.Name != null) if (rom.Name != null)
{ {
_datdata.Files["null"].Add(rom); // Add the list if it doesn't exist already
string key = rom.HashData.Size + "-" + rom.HashData.CRC;
if (!_datdata.Files.ContainsKey(key))
{
_datdata.Files.Add(key, new List<Rom>());
}
_datdata.Files[key].Add(rom);
_logger.User("File added: " + Path.GetFileNameWithoutExtension(item) + Environment.NewLine); _logger.User("File added: " + Path.GetFileNameWithoutExtension(item) + Environment.NewLine);
} }
else else
@@ -299,6 +307,13 @@ namespace SabreTools
/// <param name="datdata">DatData object with output information</param> /// <param name="datdata">DatData object with output information</param>
private void ProcessFileHelper(string item, Rom rom, string basepath, string parent, Dat datdata) private void ProcessFileHelper(string item, Rom rom, string basepath, string parent, Dat datdata)
{ {
// Add the list if it doesn't exist already
string key = rom.HashData.Size + "-" + rom.HashData.CRC;
if (!datdata.Files.ContainsKey(key))
{
datdata.Files.Add(key, new List<Rom>());
}
try try
{ {
// If the basepath ends with a directory separator, remove it // If the basepath ends with a directory separator, remove it
@@ -377,7 +392,7 @@ namespace SabreTools
rom.Name = romname; rom.Name = romname;
// Add the file information to the DAT // Add the file information to the DAT
datdata.Files["null"].Add(rom); datdata.Files[key].Add(rom);
_logger.User("File added: " + romname + Environment.NewLine); _logger.User("File added: " + romname + Environment.NewLine);
} }