출처1 : https://stackoverflow.com/questions/1266674/how-can-one-get-an-absolute-or-normalized-file-path-in-net

출처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();

}














Posted by motolies
,