我需要写一个对象,它可以接收不同类型的路径/网址,并返回它是哪种类型的路径/网址。例如,路径可以是
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
如何在C#
中检查是物理路径、相对URL还是绝对URL?判断它是否为相对或绝对URI相对较容易,但如何知道它是否为UNC路径呢?我尝试使用Uri对象及其IsUnc属性,但它并没有真正帮助我... 对于c:\temp,它返回false;对于“/temp”,“temp/”和“temp”,它会抛出一个格式不正确的异常。是否存在.NET 3.5中的任何内置对象可以帮助我解决这个问题,或者我可以使用什么算法来确定路径类型?
new Uri(s)
或Uri.TryCreate
将其解析为URI;(2) 如果失败,尝试将字符串视为路径。 - Vlad