C#中怎么判断路径合法

mirle159 2007-06-06 09:31:54
如题,不是判断是否存在这个路径,网上说的用正则式,,写得都不清楚,求详情
...全文
4055 37 打赏 收藏 转发到动态 举报
写回复
用AI写文章
37 条回复
切换为时间正序
请发表友善的回复…
发表回复
ytc666 2009-11-16
  • 打赏
  • 举报
回复
输入时自动检查不合法的符号就o了
dxjhq 2009-11-16
  • 打赏
  • 举报
回复
创建下路径如果成功就是有效的,用正则式是不行的,如果我输入的一个光驱的路径,正则是可以验证通过的,但COPY文件时就会失败了。
kkun_3yue3 2009-11-16
  • 打赏
  • 举报
回复
sorry

char[] invalidchar = System.IO.Path.GetInvalidPathChars();
//判断invalidchar为空即表示路径合法,反之表示不合法
kkun_3yue3 2009-11-16
  • 打赏
  • 举报
回复

//
// 摘要:
// 获取包含不允许在路径名中使用的字符的数组。
//
// 返回结果:
// 包含不允许在路径名中使用的字符的数组。
public static char[] GetInvalidPathChars();
lovelan1748 2009-11-16
  • 打赏
  • 举报
回复
发现个垃圾楼主
mirle159 2007-06-11
  • 打赏
  • 举报
回复
是CS结构的
我要判断的是路径是否合法,,就是说给我一个文本框,,我自己手动输入一个路径,,要判断这个路径是不是正确的,,,不是向上面几位说的文件是不是存在,,我也试了上面说的方法判断,,但就是不抛错,,,只有当输入的路径为空时才抛错!!!怎么回事啊??请大家指教下
nyzfl 2007-06-11
  • 打赏
  • 举报
回复
lz是bs的吗?你想判断服务器的文件路径是否存在吗?

那是不可能的。
cancerser 2007-06-11
  • 打赏
  • 举报
回复
我就不信 正则能判断出一个路径是否存在
yangmt204 2007-06-09
  • 打赏
  • 举报
回复
.....
photoplan 2007-06-09
  • 打赏
  • 举报
回复
try
{
FileInfo fi = new FileInfo(路径);
}
catch
{
// 非法
}

以下是各种异常发生的条件,你可以多写几个 Catch 块

ArgumentNullException
fileName 为空引用(在 Visual Basic 中为 Nothing)。

SecurityException
调用方没有所要求的权限。

ArgumentException
文件名为空,只包含空白,或包含无效字符。

UnauthorizedAccessException
对 fileName 的访问被拒绝。

PathTooLongException
指定的路径、文件名或者两者都超出了系统定义的最大长度。例如,在基于 Windows 的平台上,路径必须小于 248 个字符,文件名必须小于 260 个字符。

NotSupportedException
fileName 字符串中间有一个冒号 (:)。

mirle159 2007-06-07
  • 打赏
  • 举报
回复
只有当我的路径为空的时候才是false,,!!求解
mirle159 2007-06-07
  • 打赏
  • 举报
回复
LS的大哥,,怎么不管我输入正确还是错误的路径都返回的是true!!怎么回事呢???
王集鹄 2007-06-07
  • 打赏
  • 举报
回复
public bool IsPositiveNumber(String path)
{
Regex objNotPositivePattern = new Regex(@"^([a-zA-Z]:\\)?[^\/\:\*\?\""\<\>\|\,]+$");
return objNotPositivePattern.IsMatch(path);
}
hywyjw 2007-06-07
  • 打赏
  • 举报
回复
Directory.Exists(Server.Mapth("url"));
mirle159 2007-06-07
  • 打赏
  • 举报
回复
如果按楼上的用正则式判断

public bool IsPositiveNumber(String path) {
Regex objNotPositivePattern = new Regex^([a-zA-Z]:\\)?[^\/\:\*\?\""\<\>\|\,]+$"");
return objNotPositivePattern.IsMatch(path);
}

^([a-zA-Z]:\\)?[^\/\:\*\?\""\<\>\|\,]+$" 出现错误,,也求达人解答下!!到底该怎么写!!
mirle159 2007-06-07
  • 打赏
  • 举报
回复
public bool checkpath(String path) {
Boolean m = false;
try
{
Path.GetFileName(path);
m = true;

}
catch
{
throw new ArgumentException("是非法的");
}
return m;
}


我这样写的,,就算path乱输入或者不输入为空的话,, 结果m 还是等于 true,,就是根本不抛错!!难道我写的不正确??求解答
leo5381544 2007-06-06
  • 打赏
  • 举报
回复
zswang 说昨好详细.学习了
mirle159 2007-06-06
  • 打赏
  • 举报
回复
多谢!!我研究下
王集鹄 2007-06-06
  • 打赏
  • 举报
回复
^([a-zA-Z]:\\)?[^\/\:\*\?\""\<\>\|\,]+$"

正则中"\\"代表"\" "\/"、"\:"...类推

"盘符(字母):\" 路径最前面是盘符,也可以没有,所以用"?"

路径中不能包含“/:*"<>|,”这些字符,[^...]就表示不包含...

+表示至少得出现一次,避免空路径的情况
-过客- 2007-06-06
  • 打赏
  • 举报
回复
.............
加载更多回复(17)

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧