C#中利用正则表达式检测文件路径的合法性

来源:互联网 发布:linux 翻到最后一页 编辑:程序博客网 时间:2024/05/18 09:53


http://blog.csdn.net/BeiLinYu/article/details/44810005


项目中少不了读取或设置文件路径的功能,如何才能对输入的路径是否合法进行判断呢?用正则表达式是个不错的方式。我们都知道文件路径的字符串一般格式,首先是盘符,一般是abcde等字幕,盘符后用冒号隔开,然后用“\”隔开各层文件夹,如:F:\Funny\22\renxi,在文件夹和文件命名时,不能包含\ / : * ? ” < > |等字符。基于这些原则,我们可以编写用于匹配的整个表达式。正则表达式的语法就不详细介绍啦,网上一搜一大把


匹配文件名或文件夹名的正则表达式: “^[^\/:*\?\”“\<>|,]+$”

匹配完整路径的正则表达式 “^([a-zA-Z]:\)?[^\/:*\?\”“\<>|,]*$”

使用示例如下:

 if (rTxtSavePath.Text != "")            {                Regex regex = new Regex(@"^([a-zA-Z]:\\)?[^\/\:\*\?\""\<\>\|\,]*$");                Match m = regex.Match(rTxtSavePath.Text);                if (!m.Success)                {                   MessageBox.Show("非法的文件保存路径,请重新选择或输入!");                    return;                }                regex = new Regex(@"^[^\/\:\*\?\""\<\>\|\,]+$");                m = regex.Match(rTxtFileName.Text);                if (!m.Success)                {                    MessageBox.Show("请勿在文件名中包含\\ / : * ? \" < > |等字符,请重新输入有效文件名!");                    return;                }            }

注意,在C#中使用正则表达式类时,需要先添加引用using System.Text.RegularExpressions;

阅读全文
0 0
原创粉丝点击