PHP realpath相当于C#

时间:2013-04-05 15:08:03

标签: c# php file

对于UNIX路径,C#中的函数是否等同于PHP的realpath

我找不到任何东西,从头开始写一个似乎相当 耗时。

我知道GetFullPath,但它有以下问题(对我而言):

  • 这是一个返回的Windows路径,因此如果给出"//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.

2 个答案:

答案 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, "/")

但我建议你自己编码,以便更好地控制。