Move TreatAsFile up a library layer

This commit is contained in:
Matt Nadareski
2025-01-05 21:51:35 -05:00
parent 35f2284c6a
commit c67fe8a4d5
9 changed files with 66 additions and 65 deletions

View File

@@ -66,8 +66,8 @@ namespace SabreTools.DatTools
/// </summary>
/// <param name="datFile">Current DatFile object to add to</param>
/// <param name="basePath">Base folder to be used in creating the DAT</param>
/// <param name="asFiles">TreatAsFiles representing CHD and Archive scanning</param>
public bool PopulateFromDir(DatFile datFile, string basePath, TreatAsFile asFiles = 0x00)
/// <param name="asFile">TreatAsFile representing CHD and Archive scanning</param>
public bool PopulateFromDir(DatFile datFile, string basePath, TreatAsFile asFile = 0x00)
{
// Set the progress variables
long totalSize = 0;
@@ -109,7 +109,7 @@ namespace SabreTools.DatTools
{
currentSize += new FileInfo(item).Length;
CheckFileForHashes(datFile, item, basePath, asFiles);
CheckFileForHashes(datFile, item, basePath, asFile);
logger.User(totalSize, currentSize, item);
}
@@ -125,7 +125,7 @@ namespace SabreTools.DatTools
logger.User(totalSize, currentSize);
string? parentPath = Path.GetDirectoryName(Path.GetDirectoryName(basePath));
CheckFileForHashes(datFile, basePath, parentPath, asFiles);
CheckFileForHashes(datFile, basePath, parentPath, asFile);
logger.User(totalSize, totalSize, basePath);
}
@@ -139,8 +139,8 @@ namespace SabreTools.DatTools
/// <param name="datFile">Current DatFile object to add to</param>
/// <param name="item">Filename of the item to be checked</param>
/// <param name="basePath">Base folder to be used in creating the DAT</param>
/// <param name="asFiles">TreatAsFiles representing CHD and Archive scanning</param>
private void CheckFileForHashes(DatFile datFile, string item, string? basePath, TreatAsFile asFiles)
/// <param name="asFile">TreatAsFile representing CHD and Archive scanning</param>
private void CheckFileForHashes(DatFile datFile, string item, string? basePath, TreatAsFile asFile)
{
// If we're in depot mode, process it separately
if (CheckDepotFile(datFile, item))
@@ -157,9 +157,9 @@ namespace SabreTools.DatTools
// Skip if we're treating archives as files and skipping files
#if NET20 || NET35
if ((asFiles & TreatAsFile.Archive) != 0 && _skipFileType == SkipFileType.File)
if ((asFile & TreatAsFile.Archive) != 0 && _skipFileType == SkipFileType.File)
#else
if (asFiles.HasFlag(TreatAsFile.Archive) && _skipFileType == SkipFileType.File)
if (asFile.HasFlag(TreatAsFile.Archive) && _skipFileType == SkipFileType.File)
#endif
{
return;
@@ -173,9 +173,9 @@ namespace SabreTools.DatTools
// Process as archive if we're not treating archives as files
#if NET20 || NET35
else if ((asFiles & TreatAsFile.Archive) == 0)
else if ((asFile & TreatAsFile.Archive) == 0)
#else
else if (!asFiles.HasFlag(TreatAsFile.Archive))
else if (!asFile.HasFlag(TreatAsFile.Archive))
#endif
{
var extracted = archive.GetChildren();
@@ -192,7 +192,7 @@ namespace SabreTools.DatTools
// Process as file if we're treating archives as files
else
{
ProcessFile(datFile, item, basePath, asFiles);
ProcessFile(datFile, item, basePath, asFile);
}
}
@@ -205,7 +205,7 @@ namespace SabreTools.DatTools
// Process as file
else
ProcessFile(datFile, item, basePath, asFiles);
ProcessFile(datFile, item, basePath, asFile);
}
}
@@ -401,13 +401,13 @@ namespace SabreTools.DatTools
/// <param name="datFile">Current DatFile object to add to</param>
/// <param name="item">File to be added</param>
/// <param name="basePath">Path the represents the parent directory</param>
/// <param name="asFiles">TreatAsFiles representing CHD and Archive scanning</param>
private void ProcessFile(DatFile datFile, string item, string? basePath, TreatAsFile asFiles)
/// <param name="asFile">TreatAsFile representing CHD and Archive scanning</param>
private void ProcessFile(DatFile datFile, string item, string? basePath, TreatAsFile asFile)
{
logger.Verbose($"'{Path.GetFileName(item)}' treated like a file");
var header = datFile.Header.GetStringFieldValue(Models.Metadata.Header.HeaderKey);
BaseFile? baseFile = FileTypeTool.GetInfo(item, header, _hashes);
DatItem? datItem = DatItem.Create(baseFile, asFiles);
DatItem? datItem = DatItem.Create(baseFile, asFile);
if (datItem != null)
ProcessFileHelper(datFile, item, datItem, basePath, string.Empty);
}

View File

@@ -188,7 +188,7 @@ namespace SabreTools.DatTools
/// <param name="delete">True if input files should be deleted, false otherwise</param>
/// <param name="inverse">True if the DAT should be used as a filter instead of a template, false otherwise</param>
/// <param name="outputFormat">Output format that files should be written to</param>
/// <param name="asFiles">TreatAsFiles representing special format scanning</param>
/// <param name="asFile">TreatAsFile representing special format scanning</param>
/// <returns>True if rebuilding was a success, false otherwise</returns>
public static bool RebuildGeneric(
DatFile datFile,
@@ -199,7 +199,7 @@ namespace SabreTools.DatTools
bool delete = false,
bool inverse = false,
OutputFormat outputFormat = OutputFormat.Folder,
TreatAsFile asFiles = 0x00)
TreatAsFile asFile = 0x00)
{
#region Perform setup
@@ -239,7 +239,7 @@ namespace SabreTools.DatTools
if (System.IO.File.Exists(input))
{
logger.User($"Checking file: {input}");
bool rebuilt = RebuildGenericHelper(datFile, input, outDir, quickScan, date, inverse, outputFormat, asFiles);
bool rebuilt = RebuildGenericHelper(datFile, input, outDir, quickScan, date, inverse, outputFormat, asFile);
// If we are supposed to delete the file, do so
if (delete && rebuilt)
@@ -257,7 +257,7 @@ namespace SabreTools.DatTools
#endif
{
logger.User($"Checking file: {file}");
bool rebuilt = RebuildGenericHelper(datFile, file, outDir, quickScan, date, inverse, outputFormat, asFiles);
bool rebuilt = RebuildGenericHelper(datFile, file, outDir, quickScan, date, inverse, outputFormat, asFile);
// If we are supposed to delete the file, do so
if (delete && rebuilt)
@@ -283,7 +283,7 @@ namespace SabreTools.DatTools
/// <param name="date">True if the date from the DAT should be used if available, false otherwise</param>
/// <param name="inverse">True if the DAT should be used as a filter instead of a template, false otherwise</param>
/// <param name="outputFormat">Output format that files should be written to</param>
/// <param name="asFiles">TreatAsFiles representing special format scanning</param>
/// <param name="asFile">TreatAsFile representing special format scanning</param>
/// <returns>True if the file was used to rebuild, false otherwise</returns>
private static bool RebuildGenericHelper(
DatFile datFile,
@@ -293,7 +293,7 @@ namespace SabreTools.DatTools
bool date,
bool inverse,
OutputFormat outputFormat,
TreatAsFile asFiles)
TreatAsFile asFile)
{
// If we somehow have a null filename, return
if (file == null)
@@ -331,15 +331,15 @@ namespace SabreTools.DatTools
if (internalFileInfo == null)
internalDatItem = null;
#if NET20 || NET35
else if (internalFileInfo is FileTypes.Aaru.AaruFormat && (asFiles & TreatAsFile.AaruFormat) == 0)
else if (internalFileInfo is FileTypes.Aaru.AaruFormat && (asFile & TreatAsFile.AaruFormat) == 0)
#else
else if (internalFileInfo is FileTypes.Aaru.AaruFormat && !asFiles.HasFlag(TreatAsFile.AaruFormat))
else if (internalFileInfo is FileTypes.Aaru.AaruFormat && !asFile.HasFlag(TreatAsFile.AaruFormat))
#endif
internalDatItem = new Media(internalFileInfo);
#if NET20 || NET35
else if (internalFileInfo is FileTypes.CHD.CHDFile && (asFiles & TreatAsFile.CHD) == 0)
else if (internalFileInfo is FileTypes.CHD.CHDFile && (asFile & TreatAsFile.CHD) == 0)
#else
else if (internalFileInfo is FileTypes.CHD.CHDFile && !asFiles.HasFlag(TreatAsFile.CHD))
else if (internalFileInfo is FileTypes.CHD.CHDFile && !asFile.HasFlag(TreatAsFile.CHD))
#endif
internalDatItem = new Disk(internalFileInfo);
else