嗨,我想知道你们能帮忙吗。
我正在编写一个应用程序,该应用程序将存在于多个服务器上,因此需要多个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");
但为了做到这一点,我找不到正确的语法?
有谁知道??
提前致谢, 克雷格
答案 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");