mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
[DatFile] Get header skippers fixed in rebuild again
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user