物理文件路径

时间:2009-11-03 05:18:02

标签: c# file-io

在C#中获取文件物理路径的最佳方法是什么?

更新:

我有一个文件名,但我不想硬编码它的路径,因为它可能会改变。我只知道它的相对路径,但不知道它的物理路径。

3 个答案:

答案 0 :(得分:10)

对于常规应用,Path.GetFullPath(path)会返回此信息。如果这是网络,则MapPath就是您想要的(例如,Server.MapPath("~/foo/bar"))。

评论;试试HttpContext.Current.Server.MapPath(...);在没有HttpServerUtility(评论)的情况下,请尝试VirtualPathUtility.ToAbsolute

答案 1 :(得分:5)

如果您正在寻找文件的绝对路径,则需要System.IO.Path.GetFullPath

  

返回的绝对路径   指定的路径字符串。

string path = "hello.txt";
Console.WriteLine(Path.GetFullPath(path));

在我看来,Path课程非常有用且可怜地使用不足。

答案 2 :(得分:3)

这个问题仍然不清楚,但我会小心......

如果是在Asp.Net中,您可以在

中使用Server.MapPath
string fileLocation = Server.MapPath("~/SomeAppRelativeDirectory/SomeFile.ext");

在WinForms或Console应用程序中,如果文件是相对于可执行文件的,则可以尝试使用System.Environment.CurrentDirectory 如在

string fullPath = System.IO.Path.Combine(System.Environment.CurrentDirectory, "SomeAppRelativeDirectory/SomeFile.ext");