mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-07-09 02:16:55 +00:00
Trim path separators from start of filenames on extract
This commit is contained in:
@@ -63,6 +63,7 @@ namespace SabreTools.Wrappers
|
||||
|
||||
// Ensure directory separators are consistent
|
||||
string filename = file.Name.Length == 0 ? $"file{index}" : file.Name;
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
@@ -66,6 +66,7 @@ namespace SabreTools.Wrappers
|
||||
return false;
|
||||
|
||||
// Ensure directory separators are consistent
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
@@ -25,6 +25,8 @@ namespace SabreTools.Wrappers
|
||||
|
||||
// Ensure directory separators are consistent
|
||||
string filename = Guid.NewGuid().ToString();
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
@@ -72,6 +72,7 @@ namespace SabreTools.Wrappers
|
||||
}
|
||||
|
||||
// Ensure directory separators are consistent
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
@@ -72,6 +72,7 @@ namespace SabreTools.Wrappers
|
||||
|
||||
// Ensure directory separators are consistent
|
||||
string filename = file.Path ?? $"file{index}";
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
@@ -40,6 +40,7 @@ namespace SabreTools.Wrappers
|
||||
?? (Filename is not null ? Path.GetFileName(Filename).Replace(".gz", string.Empty) : null)
|
||||
?? $"extracted_file";
|
||||
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
@@ -95,6 +95,7 @@ namespace SabreTools.Wrappers
|
||||
return false;
|
||||
|
||||
// Ensure directory separators are consistent
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
@@ -266,6 +266,7 @@ namespace SabreTools.Wrappers
|
||||
#endif
|
||||
|
||||
// Ensure directory separators are consistent
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
@@ -27,6 +27,7 @@ namespace SabreTools.Wrappers
|
||||
|
||||
// Ensure directory separators are consistent
|
||||
var filename = entry.Path.TrimEnd('\0');
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
@@ -34,6 +34,7 @@ namespace SabreTools.Wrappers
|
||||
filename += $".{FileExtension}";
|
||||
|
||||
// Ensure directory separators are consistent
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
@@ -30,6 +30,7 @@ namespace SabreTools.Wrappers
|
||||
|
||||
// Ensure directory separators are consistent
|
||||
string filename = "tempfile.bin";
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
@@ -42,6 +42,7 @@ namespace SabreTools.Wrappers
|
||||
return false;
|
||||
|
||||
// Ensure directory separators are consistent
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
@@ -371,10 +371,8 @@ namespace SabreTools.Wrappers
|
||||
/// <returns>Filestream opened for the file</returns>
|
||||
private FileStream GetFileStream(string filename, string outputDirectory)
|
||||
{
|
||||
// Trim directory separators from the start
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
|
||||
// Ensure directory separators are consistent
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
@@ -52,6 +52,7 @@ namespace SabreTools.Wrappers
|
||||
|
||||
// Ensure directory separators are consistent
|
||||
string filename = directoryItem.ItemName.Length == 0 ? $"file{index}" : directoryItem.ItemName;
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
@@ -52,6 +52,7 @@ namespace SabreTools.Wrappers
|
||||
{
|
||||
// Ensure directory separators are consistent
|
||||
string filename = segment.FileName ?? $"file{index}";
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
@@ -74,6 +74,7 @@ namespace SabreTools.Wrappers
|
||||
|
||||
// Ensure directory separators are consistent
|
||||
string filename = entry.Key;
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
@@ -83,6 +83,7 @@ namespace SabreTools.Wrappers
|
||||
|
||||
// Ensure directory separators are consistent
|
||||
string filename = entry.Name.Length == 0 ? $"FILE_{i}" : entry.Name;
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
@@ -601,6 +602,7 @@ namespace SabreTools.Wrappers
|
||||
|
||||
// Ensure directory separators are consistent
|
||||
string filename = entry.Filename?.TrimEnd('\0') ?? $"FILE_{i}";
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
@@ -240,6 +240,7 @@ namespace SabreTools.Wrappers
|
||||
|
||||
// Ensure directory separators are consistent
|
||||
string filename = entry.Key;
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
@@ -120,6 +120,7 @@ namespace SabreTools.Wrappers
|
||||
return false;
|
||||
|
||||
// Ensure directory separators are consistent
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
@@ -49,6 +49,7 @@ namespace SabreTools.Wrappers
|
||||
|
||||
// Ensure directory separators are consistent
|
||||
string filename = entry.Path.TrimEnd('\0');
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
@@ -211,6 +211,7 @@ namespace SabreTools.Wrappers
|
||||
|
||||
// Ensure directory separators are consistent
|
||||
string filename = entry.Key;
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
@@ -77,6 +77,7 @@ namespace SabreTools.Wrappers
|
||||
|
||||
// Ensure directory separators are consistent
|
||||
entryDirectory = Path.Combine(outputDirectory, entryDirectory);
|
||||
entryDirectory = entryDirectory.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
entryDirectory = entryDirectory.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
@@ -136,6 +137,7 @@ namespace SabreTools.Wrappers
|
||||
|
||||
// Ensure directory separators are consistent
|
||||
string filename = header.FileName?.TrimEnd('\0') ?? $"entry_{i}";
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
@@ -66,6 +66,7 @@ namespace SabreTools.Wrappers
|
||||
#pragma warning restore IDE0010
|
||||
|
||||
// Ensure directory separators are consistent
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
@@ -111,6 +111,7 @@ namespace SabreTools.Wrappers
|
||||
|
||||
// Ensure directory separators are consistent
|
||||
string filename = $"{directoryItem.Name}.{directoryItem.Extension}";
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (!string.IsNullOrEmpty(directoryItem.Path))
|
||||
filename = Path.Combine(directoryItem.Path, filename);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
|
||||
@@ -52,6 +52,7 @@ namespace SabreTools.Wrappers
|
||||
|
||||
// Ensure directory separators are consistent
|
||||
string filename = $"{lump.Name}.lmp";
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
@@ -30,6 +30,7 @@ namespace SabreTools.Wrappers
|
||||
string filename = Filename is not null
|
||||
? Path.GetFileNameWithoutExtension(Filename)
|
||||
: Guid.NewGuid().ToString();
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
@@ -61,6 +61,7 @@ namespace SabreTools.Wrappers
|
||||
|
||||
// Ensure directory separators are consistent
|
||||
string filename = directoryItem.Name ?? $"file{index}";
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
@@ -32,6 +32,7 @@ namespace SabreTools.Wrappers
|
||||
{
|
||||
// Ensure directory separators are consistent
|
||||
string filename = string.IsNullOrEmpty(Filename) ? "filename" : Path.GetFileNameWithoutExtension(Filename);
|
||||
filename = filename.TrimStart(['\\', '/']);
|
||||
if (Path.DirectorySeparatorChar == '\\')
|
||||
filename = filename.Replace('/', '\\');
|
||||
else if (Path.DirectorySeparatorChar == '/')
|
||||
|
||||
Reference in New Issue
Block a user