1234567891011121314151617181920212223242526272829303132333435363738394041 |
- using System.Collections.Generic;
- using System.IO;
- using System.Text;
- namespace CueSplitter.Helpers
- {
- internal static class FilenameHelper
- {
- private static char[] _invalidCharacters=null;
- private static char[] GetInvalidCharacters()
- {
- var invalidChars = new List<char>();
- invalidChars.AddRange(Path.GetInvalidFileNameChars());
- invalidChars.AddRange(Path.GetInvalidPathChars());
- return invalidChars.ToArray();
- }
- public static char[] InvalidCharacters => _invalidCharacters ??= GetInvalidCharacters();
- public static string RemoveInvalidCharacters(string content, char replace = '_', bool doNotReplaceBackslashes = false)
- {
- if (string.IsNullOrEmpty(content))
- return content;
- var idx = content.IndexOfAny(InvalidCharacters);
- if (idx >= 0)
- {
- var sb = new StringBuilder(content);
- while (idx >= 0)
- {
- if (sb[idx] != '\\' || !doNotReplaceBackslashes)
- sb[idx] = replace;
- idx = content.IndexOfAny(InvalidCharacters, idx + 1);
- }
- return sb.ToString();
- }
- return content;
- }
- }
- }
|