4

C# 中是否有与 PHP 的UNIX 路径的realpath等效的函数?

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

我知道GetFullPath但它有以下问题(对我来说):

  • 这是一个正在返回的 Windows 路径,因此返回类似"//foo//../bar///c","t:\bar\c"的内容。
  • 它从目录名称中删除空格,因此返回类似"/foo bar/baz","t:\foobar\baz"的内容。
  • GivingConsole.WriteLine(Path.GetFullPath( "//d/"));甚至没有编译,我得到这个ArgumentExcpetion消息:The UNC path should be of the form \\server\share.
4

2 回答 2

0

我认为这取决于你想要什么以及你用 C# 编写的应用程序类型

System.IO有几个路径特定的功能

IESystem.IO.Path.GetDirectoryName

您还可以使用反射获取执行的程序集路径,即 System.Reflection.Assembly.GetExecutingAssembly().Location

在 MVC 中有 httpcontext 中的 MapPath 即 HttpContext.Current.Server.MapPath

有几种选择,大多数都是可扩展的。

你的具体问题是什么?

于 2013-04-05T15:16:37.103 回答
0

您可以使用Uri类,它只是不会合并所有重复的斜杠,因此需要进行一些后处理:

new Regex(@"/\/+/").Replace(new Uri("//foo//../bar///c").AbsolutePath, "/")

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

于 2013-04-05T15:22:58.910 回答