mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
[SabreTools, DatFile] Make multiple DFD output static in library
This commit is contained in:
@@ -5657,6 +5657,59 @@ namespace SabreTools.Library.DatFiles
|
|||||||
|
|
||||||
#region Static Methods
|
#region Static Methods
|
||||||
|
|
||||||
|
#region Populate DAT from Directory
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Populate and output DatFiles based on a base DatFile and user inputs
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="basedat">Base DAT that contains special header information to use</param>
|
||||||
|
/// <param name="inputs">List of inputs to attempt to make DatFiles from</param>
|
||||||
|
/// <param name="omitFromScan">Hash flag saying what hashes should not be calculated</param>
|
||||||
|
/// <param name="bare">True if the date should be omitted from the DAT, false otherwise</param>
|
||||||
|
/// <param name="archivesAsFiles">True if archives should be treated as files, false otherwise</param>
|
||||||
|
/// <param name="skipFileType">Type of files that should be skipped</param>
|
||||||
|
/// <param name="addBlanks">True if blank items should be created for empty folders, false otherwise</param>
|
||||||
|
/// <param name="addDate">True if dates should be archived for all files, false otherwise</param>
|
||||||
|
/// <param name="tempDir">Name of the directory to create a temp folder in (blank is current directory)</param>
|
||||||
|
/// <param name="outDir">Output directory to write created DatFiles</param>
|
||||||
|
/// <param name="copyFiles">True if files should be copied to the temp directory before hashing, false otherwise</param>
|
||||||
|
/// <param name="headerToCheckAgainst">Populated string representing the name of the skipper to use, a blank string to use the first available checker, null otherwise</param>
|
||||||
|
/// <param name="chdsAsFiles">True if CHDs should be treated like regular files, false otherwise</param>
|
||||||
|
/// <returns>True if all DatFiles have been populated successfully, false otherwise</returns>
|
||||||
|
public static bool PopulateDatsFromDirs(DatFile basedat, List<string> inputs, Hash omitFromScan, bool bare, bool archivesAsFiles, SkipFileType skipFileType,
|
||||||
|
bool addBlanks, bool addDate, string tempDir, string outDir, bool copyFiles, string headerToCheckAgainst, bool chdsAsFiles)
|
||||||
|
{
|
||||||
|
// Clean the temp directory
|
||||||
|
tempDir = (String.IsNullOrWhiteSpace(tempDir) ? Path.GetTempPath() : tempDir);
|
||||||
|
|
||||||
|
// Set the output variable
|
||||||
|
bool success = true;
|
||||||
|
|
||||||
|
// For each input directory, create a DAT
|
||||||
|
foreach (string path in inputs)
|
||||||
|
{
|
||||||
|
if (Directory.Exists(path) || File.Exists(path))
|
||||||
|
{
|
||||||
|
// Clone the base Dat for information
|
||||||
|
DatFile datdata = new DatFile(basedat);
|
||||||
|
|
||||||
|
string basePath = Path.GetFullPath(path);
|
||||||
|
success &= datdata.PopulateFromDir(basePath, omitFromScan, bare, archivesAsFiles,
|
||||||
|
skipFileType, addBlanks, addDate, tempDir, copyFiles, headerToCheckAgainst, chdsAsFiles);
|
||||||
|
|
||||||
|
// If it was a success, write the DAT out
|
||||||
|
if (success)
|
||||||
|
{
|
||||||
|
datdata.WriteToFile(outDir);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region Statistics
|
#region Statistics
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -124,34 +124,15 @@ namespace SabreTools
|
|||||||
Type = (superdat ? "SuperDAT" : ""),
|
Type = (superdat ? "SuperDAT" : ""),
|
||||||
};
|
};
|
||||||
|
|
||||||
// Clean the temp directory
|
// Attempt to create all of the DatFiles
|
||||||
tempDir = (String.IsNullOrWhiteSpace(tempDir) ? Path.GetTempPath() : tempDir);
|
bool success = DatFile.PopulateDatsFromDirs(basedat, inputs, omitFromScan, removeDateFromAutomaticName, archivesAsFiles,
|
||||||
|
skipFileType, addBlankFilesForEmptyFolder, addFileDates, tempDir, outDir, copyFiles, headerToCheckAgainst, chdsAsFiles);
|
||||||
|
|
||||||
// For each input directory, create a DAT
|
// If it was not successful, show the help
|
||||||
foreach (string path in inputs)
|
if (!success)
|
||||||
{
|
{
|
||||||
if (Directory.Exists(path) || File.Exists(path))
|
Console.WriteLine();
|
||||||
{
|
_help.OutputIndividualFeature("DATFromDir");
|
||||||
// Clone the base Dat for information
|
|
||||||
DatFile datdata = new DatFile(basedat);
|
|
||||||
|
|
||||||
string basePath = Path.GetFullPath(path);
|
|
||||||
bool success = datdata.PopulateFromDir(basePath, omitFromScan, removeDateFromAutomaticName, archivesAsFiles,
|
|
||||||
skipFileType, addBlankFilesForEmptyFolder, addFileDates, tempDir, copyFiles, headerToCheckAgainst, chdsAsFiles);
|
|
||||||
|
|
||||||
// If it was a success, write the DAT out
|
|
||||||
if (success)
|
|
||||||
{
|
|
||||||
datdata.WriteToFile(outDir);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Otherwise, show the help
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Console.WriteLine();
|
|
||||||
_help.OutputIndividualFeature("DATFromDir");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user