출처2 : https://stackoverflow.com/questions/309485/c-sharp-sanitize-file-name
파일명이나 경로에 대하여 사용할 수 없는 문자열이 왔을 때 언더바(_)로 치환하는 함수이다.
private static string NormalizeFileName(string name)
{
// 파일명에 대하여 올 수 없는 문자는 언더바(_)로 치환
string invalidChars = System.Text.RegularExpressions.Regex.Escape(new string(System.IO.Path.GetInvalidFileNameChars()));
string invalidRegStr = string.Format(@"([{0}]*\.+$)|([{0}]+)", invalidChars);
return System.Text.RegularExpressions.Regex.Replace(name, invalidRegStr, "_");
}
public static string NormalizePath(string path)
{
// 폴더명에 대하여 올 수 없는 문자열 언더바(_)로 치환
string invalidChars = System.Text.RegularExpressions.Regex.Escape(new string(System.IO.Path.GetInvalidPathChars()));
string invalidRegStr = string.Format(@"([{0}]*\.+$)|([{0}]+)", invalidChars);
string rpath = System.Text.RegularExpressions.Regex.Replace(path, invalidRegStr, "_");
return Path.GetFullPath(new Uri(rpath).LocalPath).TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar).ToUpperInvariant();
}