判断文件路径、url是否可用

url的正则验证很值得参考

         /// <summary>
        /// 判断绝对路径是否合法。
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public static bool IsAbosolutePath(string path)
        {
            string pattern = @"^\s*([a-zA-Z]:\\|\\\\)([^\^\/:*?""<>|]+\\)*([^\^\/:*?""<>|]+)$";  
            Regex regex1 = new Regex(pattern);
            return regex1.IsMatch(path);  
        }
        /// <summary>
        /// 判断绝对路径是否有效
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public static bool AbosolutePathIsValid(string path)
        {
            if (IsAbosolutePath(path))
            {
                if (File.Exists(path))
                {
                    return true;
                }
            }
            return false;
        }


        /// <summary>
        /// 判断url是否合法
        /// </summary>
        /// <param name="url"></param>
        /// <returns></returns>
        public static bool IsUrl(string url)
        {
            var pattern = "^((https|http|ftp|rtsp|mms)?://)?"

                          + "("
                          + "([0-9]{1,3}\\.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184   
                          + "|"
                          + "([0-9a-zA-Z_!~*'()-]+\\.)*" // 域名- www.    
                          + "([0-9a-zA-Z][0-9a-zA-Z-]{0,61})?[0-9a-zA-Z]\\." // 二级域名     
                          + "[a-zA-Z]{2,6}" // first level domain- .com or .museum   
                          + ")"

                          + "(:[0-9]{1,4})?" // 端口- :80 

                          + "("
                          + "(/?)"
                          + "|"
                          + "(/[0-9a-zA-Z_!~*'().;?:@&=+$,%#-]+)"
                          + "+/?"
                          + ")$";
            Regex regex1 = new Regex(pattern);
            return regex1.IsMatch(url);
        }

        /// <summary>
        /// 判断url是否有效
        /// </summary>
        /// <param name="url"></param>
        /// <returns></returns>
        public static bool UrlIsValid(string url)
        {
            if (IsUrl(url))
            {
                HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);
                myRequest.Method = "HEAD";               //设置提交方式可以为"get","head"等
                myRequest.Timeout = 10000;              //设置网页响应时间长度
                myRequest.AllowAutoRedirect = false;//是否允许自动重定向
                HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
                if (myResponse.StatusCode == HttpStatusCode.OK) ;//返回响应的状态
                {
                    return true;
                }
            }
            return false;
        }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值