C#中怎么判断路径合法 Directory.Exists(Server.Mapth("url")); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 System.IO.Path这个类或许有用 大哥们,具体情况是这样的,,我先手动输入一个本地的路径,,不是用SaveFileDialog这个类打开本地的路径哈!!然后从数据库中取出的数据,,然后再根据我手动输入的路径来保存为文件!!现在的重点是判断这个手动输入的路径是否是正确的Directory.Exists(Server.Mapth("url"));是判断是否在本地存在这个文件路径!!和我的要求完全相反 try{ using(StreamWriter sw=new StreamWriter(yourPath))//其他自己看重载 { //... //sw.Write } return true;}catch{return false;}//简单而直接的办法 try上 Path.GetInvalidPathCharsPath.GetInvalidFileNameChars得到不可以用于路径的字符集 @"^([a-zA-Z]:\\)?[^\/\:\*\?\""\<\>\|\,]+$" ^([a-zA-Z]:\\)?[^\/\:\*\?\""\<\>\|\,]+$"正则中"\\"代表"\" "\/"、"\:"...类推"盘符(字母):\" 路径最前面是盘符,也可以没有,所以用"?"路径中不能包含“/:*"<>|,”这些字符,[^...]就表示不包含...+表示至少得出现一次,避免空路径的情况 Path.GetFileName(path)如果出错,就是不合法的 public bool checkpath(String path) { Boolean m = false; try { Path.GetFileName(path); m = true; } catch { throw new ArgumentException("是非法的"); } return m; }我这样写的,,就算path乱输入或者不输入为空的话,, 结果m 还是等于 true,,就是根本不抛错!!难道我写的不正确??求解答 如果按楼上的用正则式判断public bool IsPositiveNumber(String path) { Regex objNotPositivePattern = new Regex^([a-zA-Z]:\\)?[^\/\:\*\?\""\<\>\|\,]+$""); return objNotPositivePattern.IsMatch(path); }^([a-zA-Z]:\\)?[^\/\:\*\?\""\<\>\|\,]+$" 出现错误,,也求达人解答下!!到底该怎么写!! Directory.Exists(Server.Mapth("url")); public bool IsPositiveNumber(String path) { Regex objNotPositivePattern = new Regex(@"^([a-zA-Z]:\\)?[^\/\:\*\?\""\<\>\|\,]+$"); return objNotPositivePattern.IsMatch(path);} LS的大哥,,怎么不管我输入正确还是错误的路径都返回的是true!!怎么回事呢??? 只有当我的路径为空的时候才是false,,!!求解 try{ FileInfo fi = new FileInfo(路径);}catch{ // 非法}以下是各种异常发生的条件,你可以多写几个 Catch 块ArgumentNullException fileName 为空引用(在 Visual Basic 中为 Nothing)。 SecurityException 调用方没有所要求的权限。 ArgumentException 文件名为空,只包含空白,或包含无效字符。 UnauthorizedAccessException 对 fileName 的访问被拒绝。 PathTooLongException 指定的路径、文件名或者两者都超出了系统定义的最大长度。例如,在基于 Windows 的平台上,路径必须小于 248 个字符,文件名必须小于 260 个字符。 NotSupportedException fileName 字符串中间有一个冒号 (:)。 lz是bs的吗?你想判断服务器的文件路径是否存在吗?那是不可能的。 // // 摘要: // 获取包含不允许在路径名中使用的字符的数组。 // // 返回结果: // 包含不允许在路径名中使用的字符的数组。 public static char[] GetInvalidPathChars(); sorry char[] invalidchar = System.IO.Path.GetInvalidPathChars();//判断invalidchar为空即表示路径合法,反之表示不合法 创建下路径如果成功就是有效的,用正则式是不行的,如果我输入的一个光驱的路径,正则是可以验证通过的,但COPY文件时就会失败了。 怎么判断Datagridview中的数据是否已保存到数据库表中 不要高手,之要有经验就可以解决! PPT从数据库自动生成? Graphics.DrawImage 怎么样才能不对图像做平滑处理? 请问:listview中如何添加combobox控件? C#调用杀毒软件问题 关于把回车存到数据库的问题 跪求3个问题 我刚刚学习C#,有人愿意做我的义务教导员么? C#无边界窗体的移动 为何不能引用Microsoft.Office.Interop.Word名称空间? 如何用C#给一个gif动画加上水印?
这个类或许有用
是判断是否在本地存在这个文件路径!!和我的要求完全相反
{
using(StreamWriter sw=new StreamWriter(yourPath))//其他自己看重载
{
//...
//sw.Write
}
return true;
}
catch{return false;}
//简单而直接的办法 try上
Path.GetInvalidFileNameChars
得到不可以用于路径的字符集
Boolean m = false;
try
{
Path.GetFileName(path);
m = true;
}
catch
{
throw new ArgumentException("是非法的");
}
return m;
}
我这样写的,,就算path乱输入或者不输入为空的话,, 结果m 还是等于 true,,就是根本不抛错!!难道我写的不正确??求解答
Regex objNotPositivePattern = new Regex^([a-zA-Z]:\\)?[^\/\:\*\?\""\<\>\|\,]+$"");
return objNotPositivePattern.IsMatch(path);
}^([a-zA-Z]:\\)?[^\/\:\*\?\""\<\>\|\,]+$" 出现错误,,也求达人解答下!!到底该怎么写!!
{
Regex objNotPositivePattern = new Regex(@"^([a-zA-Z]:\\)?[^\/\:\*\?\""\<\>\|\,]+$");
return objNotPositivePattern.IsMatch(path);
}
{
FileInfo fi = new FileInfo(路径);
}
catch
{
// 非法
}以下是各种异常发生的条件,你可以多写几个 Catch 块ArgumentNullException
fileName 为空引用(在 Visual Basic 中为 Nothing)。
SecurityException
调用方没有所要求的权限。
ArgumentException
文件名为空,只包含空白,或包含无效字符。
UnauthorizedAccessException
对 fileName 的访问被拒绝。
PathTooLongException
指定的路径、文件名或者两者都超出了系统定义的最大长度。例如,在基于 Windows 的平台上,路径必须小于 248 个字符,文件名必须小于 260 个字符。
NotSupportedException
fileName 字符串中间有一个冒号 (:)。
//
// 摘要:
// 获取包含不允许在路径名中使用的字符的数组。
//
// 返回结果:
// 包含不允许在路径名中使用的字符的数组。
public static char[] GetInvalidPathChars();
//判断invalidchar为空即表示路径合法,反之表示不合法