C#中,用什么方法可以判断一个字符串是不是合法的绝对路径?

2025-02-25 16:23:26
推荐回答(5个)
回答1:

鉴于你是初学,提供一个简单可行、但效率不是很高的算法。
首先判断开头是不是一个字母加一个冒号,这个简单就不说了。
string s="C:\xxxx";//待检验的字符串
s="C:\\forTestPurpose"+s.Substring(1,s.Length-2);
//其中C:\forTestPurpose是一个自行设定的路径,目的是不让有冲突,用完之后直接删除。
DirectoryInfo result=null;
boolean isValid=true;
try
{
result=Directory.CreateDirectory(s);
}
catch(ArgumentException e)
{
isValid=false;//s格式有问题,不能
}
catch
{

}
if(isValid)
{
result.Delete(true);//用完删除
}
这种方式的缺点显而易见,但是一般够用了,而且保证判断结果是正确的。当然肯定会有其他方法。

回答2:

那你可以定义一个函数,把这个字符串从第一个字符到最后比较一下嘛,我随便写了个,比较了前面几个字符
private bool CheckPath(string pathStr)
{
pathStr=pathStr.ToUpper();
string diskStr="ABCDEFGHIJK"; //ABC等磁盘
if(pathStr.Length>=4) //C:\File 长度至少要有4个
{
//.取第一个,看是否是盘符
string fristChar=pathStr.Substring(0,1);
if(diskStr.IndexOf(fristChar)>=0)
{
//..然后再看后面是不是 :\ 这样的
string lastStr=pathStr.Substring(1,2);
if(lastStr==":\\")
{
return true;
}
}
}
return false;
}

回答3:

//判断绝对路径
//filepath是文件路径

if(System.IO.File.Exists(filepath))
{
System.Web.HttpContext.Current.Response.Write("");
}
else
{
System.Web.HttpContext.Current.Response.Write("");
}

//判断相对路径
if(System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath(filepath)))
{
System.Web.HttpContext.Current.Response.Write("");
}
else
{
System.Web.HttpContext.Current.Response.Write("");
}

回答4:

hpconline的方法是解决此类问题常见的方法之一,但最好的方式是使用正则表达式,虽然开始的时候可能需要花一些时间学习正则表达式的语法,但以后碰到了类似的问题,解决起来就非常方便了。

回答5:

sb