我想使用Path类(GetDirectoryName
,GetFileName
,Combine
等)的函数,URL格式的路径为斜杠(/)。
我的路径示例:
"xxx://server/folder1/folder2/file"
我尝试使用Path
函数完成工作,最后只更换了分隔符。
我发现GetDirectoryName
函数没有正确替换斜杠:
Path.GetDirectoryName(@"xxx://server/folder/file") -> @"xxx:\server\folder"
就像你看到一个斜线丢失了。
如何让Path功能使用'alternative'分隔符?
我可以使用具有相同功能的其他类吗?
答案 0 :(得分:6)
我害怕GetDirectoryName
,GetFileName
,Combine
等。在定义中使用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的组件对应于计算机,文件夹,文件,扩展名,使用目录,分隔符或其他任何内容。