对于UNIX路径,C#中的函数是否等同于PHP的realpath?
我找不到任何东西,从头开始写一个似乎相当 耗时。
我知道GetFullPath
,但它有以下问题(对我而言):
"//foo//../bar///c"
之类的内容,则会返回"t:\bar\c"
。"/foo bar/baz"
之类的内容,则会返回"t:\foobar\baz"
。Console.WriteLine(Path.GetFullPath( "//d/"));
甚至无法编译,我收到ArgumentExcpetion
的消息:The UNC path should be of the form \\server\share.
答案 0 :(得分:0)
我认为这取决于您想要的内容以及您在C#中编写的应用程序类型
System.IO
中的有几个特定于路径的功能
即。 System.IO.Path.GetDirectoryName
您还可以使用反射获取正在执行的装配路径
即System.Reflection.Assembly.GetExecutingAssembly().Location
在MVC中,httpcontext中有MapPath
即HttpContext.Current.Server.MapPath
有几个选项,大多数都是可扩展的。
你的具体问题是什么?
答案 1 :(得分:0)
您可以使用Uri
类,它不会合并所有重复的斜杠,因此需要进行一些后处理:
new Regex(@"/\/+/").Replace(new Uri("//foo//../bar///c").AbsolutePath, "/")
但我建议你自己编码,以便更好地控制。