[DatFile] Get header skippers fixed in rebuild again

This commit is contained in:
Matt Nadareski
2017-01-27 11:53:20 -08:00
parent fc5b0a987c
commit c34e6c830f

View File

@@ -217,7 +217,7 @@ namespace SabreTools.Helper.Dats
List<string> extracted = Directory.EnumerateFiles(tempSubDir, "*", SearchOption.AllDirectories).ToList(); List<string> extracted = Directory.EnumerateFiles(tempSubDir, "*", SearchOption.AllDirectories).ToList();
foreach (string entry in extracted) foreach (string entry in extracted)
{ {
Rom rom = FileTools.GetFileInfo(entry, logger, noMD5: quickScan, noSHA1: quickScan, header: headerToCheckAgainst); Rom rom = FileTools.GetFileInfo(entry, logger, noMD5: quickScan, noSHA1: quickScan);
usedInternally &= RebuildToOutputIndividual(rom, entry, outDir, tempSubDir, date, inverse, outputFormat, usedInternally &= RebuildToOutputIndividual(rom, entry, outDir, tempSubDir, date, inverse, outputFormat,
romba, updateDat, false /* isZip */, headerToCheckAgainst, logger); romba, updateDat, false /* isZip */, headerToCheckAgainst, logger);
} }
@@ -225,7 +225,7 @@ namespace SabreTools.Helper.Dats
// Otherwise, just get the info on the file itself // Otherwise, just get the info on the file itself
else if (File.Exists(file)) else if (File.Exists(file))
{ {
Rom rom = FileTools.GetFileInfo(file, logger, noMD5: quickScan, noSHA1: quickScan, header: headerToCheckAgainst); Rom rom = FileTools.GetFileInfo(file, logger, noMD5: quickScan, noSHA1: quickScan);
usedExternally = RebuildToOutputIndividual(rom, file, outDir, tempSubDir, date, inverse, outputFormat, usedExternally = RebuildToOutputIndividual(rom, file, outDir, tempSubDir, date, inverse, outputFormat,
romba, updateDat, false /* isZip */, headerToCheckAgainst, logger); romba, updateDat, false /* isZip */, headerToCheckAgainst, logger);
} }
@@ -476,18 +476,21 @@ namespace SabreTools.Helper.Dats
foreach (Rom item in dupes) foreach (Rom item in dupes)
{ {
// Create a headered item to use as well // Create a headered item to use as well
Rom headeredItem = (Rom)item.Clone(); rom.Machine = item.Machine;
headeredItem.Name += "_" + headeredItem.CRC; rom.Name += "_" + rom.CRC;
switch (outputFormat) switch (outputFormat)
{ {
case OutputFormat.Folder: case OutputFormat.Folder:
string outfile = Path.Combine(outDir, Style.RemovePathUnsafeCharacters(item.Machine.Name), item.Name); string outfile = Path.Combine(outDir, Style.RemovePathUnsafeCharacters(item.Machine.Name), item.Name);
string headeredOutfile = Path.Combine(outDir, Style.RemovePathUnsafeCharacters(headeredItem.Machine.Name), headeredItem.Name); string headeredOutfile = Path.Combine(outDir, Style.RemovePathUnsafeCharacters(rom.Machine.Name), rom.Name);
// Make sure the output folder is created // Make sure the output folder is created
Directory.CreateDirectory(Path.GetDirectoryName(outfile)); Directory.CreateDirectory(Path.GetDirectoryName(outfile));
// If either copy succeeds, then we want to set rebuilt to true
bool eitherSuccess = false;
// Now copy the files over // Now copy the files over
try try
{ {
@@ -497,23 +500,28 @@ namespace SabreTools.Helper.Dats
File.SetCreationTime(outfile, DateTime.Parse(item.Date)); File.SetCreationTime(outfile, DateTime.Parse(item.Date));
} }
File.Copy(file, headeredOutfile); eitherSuccess |= true;
if (date && !String.IsNullOrEmpty(headeredItem.Date)) }
catch { }
try
{ {
File.SetCreationTime(outfile, DateTime.Parse(headeredItem.Date)); File.Copy(file, headeredOutfile);
if (date && !String.IsNullOrEmpty(rom.Date))
{
File.SetCreationTime(outfile, DateTime.Parse(rom.Date));
} }
rebuilt &= true; eitherSuccess |= true;
}
catch
{
rebuilt = false;
} }
catch { }
// Now add the success of either rebuild
rebuilt &= eitherSuccess;
break; break;
case OutputFormat.TapeArchive: case OutputFormat.TapeArchive:
rebuilt &= ArchiveTools.WriteTAR(file + ".new", outDir, item, logger, date: date); rebuilt &= ArchiveTools.WriteTAR(file + ".new", outDir, item, logger, date: date);
rebuilt &= ArchiveTools.WriteTAR(file, outDir, headeredItem, logger, date: date); rebuilt &= ArchiveTools.WriteTAR(file, outDir, rom, logger, date: date);
break; break;
case OutputFormat.Torrent7Zip: case OutputFormat.Torrent7Zip:
break; break;
@@ -529,7 +537,7 @@ namespace SabreTools.Helper.Dats
break; break;
case OutputFormat.TorrentZip: case OutputFormat.TorrentZip:
rebuilt &= ArchiveTools.WriteTorrentZip(file + ".new", outDir, item, logger, date: date); rebuilt &= ArchiveTools.WriteTorrentZip(file + ".new", outDir, item, logger, date: date);
rebuilt &= ArchiveTools.WriteTorrentZip(file, outDir, headeredItem, logger, date: date); rebuilt &= ArchiveTools.WriteTorrentZip(file, outDir, rom, logger, date: date);
break; break;
} }
} }