4

嗨,我想知道你们是否可以帮忙。

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

文件夹结构是

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

\blogengine\ 这应该包含 xml 文件

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

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

它将在特定服务器上找到文件,但我需要找到与运行应用程序的服务器相关的文件,这样我就不必不断更改文件路径。所以我需要类似的东西

string[] filePaths = Directory.GetFiles(@"..\BlogEngine\", "*.xml");

但是我找不到正确的语法来做到这一点?

有人知道吗??

在此先感谢,克雷格

4

3 回答 3

6

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

例如:

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

波浪号字符代表您网站的根,如果您指定一个相对路径,那么它将被解析为相对于您的 ASP.NET 页面所在的目录。

于 2012-09-11T15:42:20.903 回答
1

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

因此,您的代码变为:

string[] filePaths = Directory.GetFiles(Path.GetFullPath(@"..\BlogEngine\"), "*.xml");
于 2012-09-11T15:44:36.370 回答
1

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

于 2012-09-11T15:42:17.733 回答