使用Directory.Getfiles指定绝对路径

时间:2012-09-11 15:39:48

标签: c# asp.net

嗨,我想知道你们能帮忙吗。

我正在编写一个应用程序,该应用程序将存在于多个服务器上,因此需要多个IP,而不是使用确切的IP和目录结构,我只想“退回”应用程序实际运行的文件夹。所以......例如....

文件夹结构

\ controls \ ----这包含要检查blogengine文件夹中是否存在xml文件的aspx文件。

\ blogengine \这应该包含xml文件

我正在使用的代码是......

string[] filePaths = Directory.GetFiles(@"\\94.175.237.35\inetpub$\wwwroot\mytest\BlogEngine\", "*.xml");

哪个会找到特定服务器上的文件,但我需要查找相对于运行该应用程序的服务器的文件,这样我就不必继续更改文件路径了。所以我需要像

这样的东西
string[] filePaths = Directory.GetFiles(@"..\BlogEngine\", "*.xml");

但为了做到这一点,我找不到正确的语法?

有谁知道??

提前致谢, 克雷格

3 个答案:

答案 0 :(得分:6)

使用Server.MapPath()方法将相对路径(基于当前目录或网站根目录)映射到绝对可访问的路径。

例如:

string folderPath = Server.MapPath("~/BlogEngine");
string[] filePaths = Directory.GetFiles(folderPath, "*.xml");

代字号代表网站的根目录,如果指定了相对路径,则它将被解析为相对于ASP.NET页面所在的目录。

答案 1 :(得分:1)

在ASP.Net应用程序中,您可以调用Server.MapPath("~/path")来解析相对于应用程序根目录的磁盘路径。

答案 2 :(得分:1)

使用Path.GetFullPath从相对路径获取绝对路径。

因此,您的代码变为:

string[] filePaths = Directory.GetFiles(Path.GetFullPath(@"..\BlogEngine\"), "*.xml");
相关问题