20 lines
691 B
C#
20 lines
691 B
C#
using System.IO;
|
|
using System.Text.RegularExpressions;
|
|
|
|
namespace LANCommander.SDK.Extensions
|
|
{
|
|
public static class StringExtensions
|
|
{
|
|
public static string SanitizeFilename(this string filename, string replacement = "")
|
|
{
|
|
var colonInTitle = new Regex(@"(\w)(: )(\w)");
|
|
var removeInvalidChars = new Regex($"[{Regex.Escape(new string(Path.GetInvalidFileNameChars()))}]", RegexOptions.Singleline | RegexOptions.Compiled | RegexOptions.CultureInvariant);
|
|
|
|
filename = colonInTitle.Replace(filename, "$1 - $3");
|
|
filename = removeInvalidChars.Replace(filename, replacement);
|
|
|
|
return filename;
|
|
}
|
|
}
|
|
}
|