Ale*_* Dn 12 .net c# uri path unc
我有一个任务是编写一个可以接收不同类型的路径/ URL的对象,并返回它是什么类型的路径/ url.例如,路径可以是
1. [drive]:\Temp
2. \\Temp
3. Temp (assuming that it relative Temp),
4. /Temp
5. ~/Temp
6. file://[drive]:/Temp
7. file://Temp
8. [scheme]://something/Temp
Run Code Online (Sandbox Code Playgroud)
...等等.
如何检查C#物理路径,相对网址或绝对网址?
我认为相对容易知道它是相对的还是绝对的uri,但是如何知道它是否是UNC路径?
我试图使用Uri对象和它的IsUnc属性,但它并没有真正帮助我....对于c:\ temp它返回false,对于"/ temp","temp /"和"temp"它会抛出异常格式是不正确的.是否存在任何内置对象.NET 3.5可以帮助我,或者我可以使用什么算法来确定路径的类型?
Ric*_*ing 28
试试这个:
var paths = new[]
{
@"C:\Temp",
@"\\Temp",
"Temp",
"/Temp",
"~/Temp",
"file://C:/Temp",
"file://Temp",
"http://something/Temp"
};
foreach (string p in paths)
{
Uri uri;
if (!Uri.TryCreate(p, UriKind.RelativeOrAbsolute, out uri))
{
Console.WriteLine("'{0}' is not a valid URI", p);
}
else if (!uri.IsAbsoluteUri)
{
Console.WriteLine("'{0}' is a relative URI", p);
}
else if (uri.IsFile)
{
if (uri.IsUnc)
{
Console.WriteLine("'{0}' is a UNC path", p);
}
else
{
Console.WriteLine("'{0}' is a file URI", p);
}
}
else
{
Console.WriteLine("'{0}' is an absolute URI", p);
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
'C:\ Temp'是文件URI
'\\ Temp'是UNC路径
'Temp'是相对URI
'/ Temp'是相对URI'〜
/Temp'是相对URI
'文件:// C:/Temp'是文件URI
'文件:// Temp'是UNC路径
'http:// something/Temp'是绝对URI
| 归档时间: |
|
| 查看次数: |
8471 次 |
| 最近记录: |