C#-去掉Windows不能用于文件名的字符

代码如下:

        /// <summary>
        /// 文件名-判断是否含有非法字符
        /// </summary>
        public void CheckFileName(){
             //^[\\/:*?\"<>|]*$中英文不带\/:*?"<>|等,下面我又添加了几种
             Regex regex = new Regex("^[\\/:*?\"<>|.~&+#%{}]*$");
             var resultName=regex.Match(contentEdit.Text);
             if (!resultName.Success)
             {
                 DXMessageBox.Show("Windows文件名不可包含“\\/:*?\"<>|.~&+#%{}”", "提示!");
                 return;
             }
        }

        /// <summary>
        /// 文件名-去除非法字符
        /// </summary>
        /// <param name="oldFileName">原文件名</param>
        /// <param name="replaceStr">用于替换非法字符的字符</param>
        /// <returns></returns>
        private string GetNewFileName(string oldFileName, char replaceChar)
        {
            // \\/:*?\"<>|.~&+#%{}
            string regexStr = "\\/:*?\"<>|.~&+#%{}";
            char[] regex = regexStr.ToCharArray();

            char[] chars = oldFileName.ToCharArray();
            for (int i = 0; i < chars.Count(); i++)
            {
                var result = regex.Contains(chars[i]);
                if (result)
                {
                    chars[i] = replaceChar;
                }
            }
            return new string(chars);
        }
posted @ 2020-12-15 10:57  ꧁执笔小白꧂  阅读(458)  评论(0)    收藏  举报