URL的路径功能

时间:2011-04-11 16:59:16

标签: c# path

我想使用Path类(GetDirectoryNameGetFileNameCombine等)的函数,URL格式的路径为斜杠(/)。

我的路径示例:

"xxx://server/folder1/folder2/file"

我尝试使用Path函数完成工作,最后只更换了分隔符。

我发现GetDirectoryName函数没有正确替换斜杠:

Path.GetDirectoryName(@"xxx://server/folder/file") -> @"xxx:\server\folder"

就像你看到一个斜线丢失了。

如何让Path功能使用'alternative'分隔符?

我可以使用具有相同功能的其他类吗?

4 个答案:

答案 0 :(得分:6)

我害怕GetDirectoryNameGetFileNameCombine等。在定义中使用Path.DirectorySeparatorChar,您需要Path.AltDirectorySeparatorChar

由于Path是一个密封的类,我认为唯一的方法是替换字符串。您可以用Path.DirectorySeparatorChar('/')和{{替换Path.AltDirectorySeparatorChar('\') 1}}(':')带“:/”

答案 1 :(得分:5)

对于GetDirectoryName(),您可以使用

pageRoot = uri.Remove(uri.LastIndexOf('/') + 1);

答案 2 :(得分:1)

您是否考虑过使用System.Uri,System.UriBuilder和(如果需要)自定义System.UriParser子类的组合?

答案 3 :(得分:0)

如果URI是file://whatever表单的本地文件URI,那么您可以调用string path = new Uri(whatever).LocalPath并在其上调用Path方法。如果您不能保证Uri是本地路径,则无法保证Uri的组件对应于计算机,文件夹,文件,扩展名,使用目录,分隔符或其他任何内容。