Handle AltDirectorySeparatorChar too

This commit is contained in:
Jaex 2022-05-23 11:54:10 +03:00
parent 11b0623377
commit 34d9c5f893

View file

@ -192,17 +192,21 @@ public static string GetAbsolutePath(string path)
public static string SanitizeFileName(string fileName, string replaceWith = "")
{
fileName = fileName.Trim();
char[] invalidChars = Path.GetInvalidFileNameChars();
return SanitizeFileName(fileName, replaceWith, invalidChars);
}
char[] invalidFileNameChars = Path.GetInvalidFileNameChars();
private static string SanitizeFileName(string fileName, string replaceWith, char[] invalidChars)
{
fileName = fileName.Trim();
if (string.IsNullOrEmpty(replaceWith))
{
return new string(fileName.Where(c => !invalidFileNameChars.Contains(c)).ToArray());
return new string(fileName.Where(c => !invalidChars.Contains(c)).ToArray());
}
else
{
foreach (char invalidFileNameChar in invalidFileNameChars)
foreach (char invalidFileNameChar in invalidChars)
{
fileName = fileName.Replace(invalidFileNameChar.ToString(), replaceWith);
}
@ -220,14 +224,10 @@ public static string SanitizePath(string path, string replaceWith = "")
path = path.Substring(root.Length);
}
string[] paths = path.Split(Path.DirectorySeparatorChar);
char[] invalidChars = Path.GetInvalidFileNameChars().Except(new char[] { Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar }).ToArray();
path = SanitizeFileName(path, replaceWith, invalidChars);
for (int i = 0; i < paths.Length; i++)
{
paths[i] = SanitizeFileName(paths[i], replaceWith);
}
return root + string.Join(Path.DirectorySeparatorChar.ToString(), paths);
return root + path;
}
public static bool OpenFile(string filePath)