mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
[DatFile, Utilities] Extensions
This commit is contained in:
@@ -865,15 +865,7 @@ namespace SabreTools.Library.Tools
|
||||
}
|
||||
|
||||
// First line of defense is going to be the extension, for better or worse
|
||||
string ext = Path.GetExtension(input).ToLowerInvariant();
|
||||
if (ext.StartsWith("."))
|
||||
{
|
||||
ext = ext.Substring(1);
|
||||
}
|
||||
|
||||
if (ext != "7z" && ext != "gz" && ext != "lzma" && ext != "rar"
|
||||
&& ext != "rev" && ext != "r00" && ext != "r01" && ext != "tar"
|
||||
&& ext != "tgz" && ext != "tlz" && ext != "zip" && ext != "zipx")
|
||||
if (!HasValidArchiveExtension(input))
|
||||
{
|
||||
return outtype;
|
||||
}
|
||||
@@ -933,17 +925,14 @@ namespace SabreTools.Library.Tools
|
||||
public static DatFormat GetDatFormat(string filename)
|
||||
{
|
||||
// Limit the output formats based on extension
|
||||
string ext = Path.GetExtension(filename).ToLowerInvariant();
|
||||
if (ext.StartsWith("."))
|
||||
{
|
||||
ext = ext.Substring(1);
|
||||
}
|
||||
if (ext != "csv" && ext != "dat" && ext != "md5" && ext != "sfv" && ext != "sha1"
|
||||
&& ext != "sha384" && ext != "sha512" && ext != "tsv" && ext != "txt" && ext != "xml")
|
||||
if (!HasValidDatExtension(filename))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Get the extension from the filename
|
||||
string ext = GetExtension(filename);
|
||||
|
||||
// Read the input file, if possible
|
||||
Globals.Logger.Verbose("Attempting to read file to get format: {0}", filename);
|
||||
|
||||
@@ -2113,6 +2102,37 @@ namespace SabreTools.Library.Tools
|
||||
return outDir;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the extension from the path, if possible
|
||||
/// </summary>
|
||||
/// <param name="path">Path to get extension from</param>
|
||||
/// <returns>Extension, if possible</returns>
|
||||
public static string GetExtension(string path)
|
||||
{
|
||||
// Check null or empty first
|
||||
if (String.IsNullOrWhiteSpace(path))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
// Get the extension from the path, if possible
|
||||
string ext = Path.GetExtension(path)?.ToLowerInvariant();
|
||||
|
||||
// Check if the extension is null or empty
|
||||
if (String.IsNullOrWhiteSpace(ext))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
// Make sure that extensions are valid
|
||||
if (ext.StartsWith("."))
|
||||
{
|
||||
ext = ext.Substring(1);
|
||||
}
|
||||
|
||||
return ext;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the proper output path for a given input file and output directory
|
||||
/// </summary>
|
||||
@@ -2256,6 +2276,67 @@ namespace SabreTools.Library.Tools
|
||||
return size;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get if the given path has a valid DAT extension
|
||||
/// </summary>
|
||||
/// <param name="path">Path to check</param>
|
||||
/// <returns>True if the extension is valid, false otherwise</returns>
|
||||
public static bool HasValidArchiveExtension(string path)
|
||||
{
|
||||
// Get the extension from the path, if possible
|
||||
string ext = GetExtension(path);
|
||||
|
||||
// Check against the list of known archive extensions
|
||||
switch (ext)
|
||||
{
|
||||
case "7z":
|
||||
case "gz":
|
||||
case "lzma":
|
||||
case "rar":
|
||||
case "rev":
|
||||
case "r00":
|
||||
case "r01":
|
||||
case "tar":
|
||||
case "tgz":
|
||||
case "tlz":
|
||||
case "zip":
|
||||
case "zipx":
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get if the given path has a valid archive extension
|
||||
/// </summary>
|
||||
/// <param name="path">Path to check</param>
|
||||
/// <returns>True if the extension is valid, false otherwise</returns>
|
||||
public static bool HasValidDatExtension(string path)
|
||||
{
|
||||
// Get the extension from the path, if possible
|
||||
string ext = GetExtension(path);
|
||||
|
||||
// Check against the list of known DAT extensions
|
||||
switch (ext)
|
||||
{
|
||||
case "csv":
|
||||
case "dat":
|
||||
case "md5":
|
||||
case "sfv":
|
||||
case "sha1":
|
||||
case "sha256":
|
||||
case "sha384":
|
||||
case "sha512":
|
||||
case "tsv":
|
||||
case "txt":
|
||||
case "xml":
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get if a string contains Unicode characters
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user