C#代码片段分享-将非法字符替换为下划线_符号

发布时间 2023-08-08 13:08:24作者: 冰河之刃

 

此代码片段用来将非法的字符清洁化处理,从而确保给文件或者文件夹命名符合规范。

/// <summary>
        /// 将非法字符替换为下划线_符号
        /// </summary>
        /// <param name="title"></param>
        /// <returns></returns>
        private static string ReplaceInvalidChar(string title)
        {
            //含有非法字符
            string invalid = new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars());
            invalid += "\\";
            invalid += "/";
            invalid += ":";
            invalid += "*";
            invalid += "?";
            invalid += "\"";
            invalid += "<";
            invalid += ">";
            invalid += "|";
            invalid += " ";
            //invalid += "@";
            invalid += "#";
            invalid += "$";
            invalid += "%";
            invalid += "&";

            invalid += "?";
            invalid += "¥";
            invalid += "!";

            if (title.IndexOfAny(invalid.ToCharArray()) >= 0)
            {

                //替换为下划线_,只要发现路径或文件名中出现下划线,就有可能是含有非法字符造成的。算是一个标识。
                foreach (char c in invalid)
                {
                    title = title.Replace(c.ToString(), "_");
                }

            }

            return title;
        }