2009-06-03 105 views
0

如何在我的ASP.Net网站中搜索子目录?ASP.Net搜索子目录

我知道这是一个普通的Winform项目,我可以很容易地通过以下获得它:

Environment.CurrentDirectory 

System.IO.Directory.GetCurrentDirectory() 

然后

string[] directories = System.IO.Path.Combine(Environment.CurrentDirectory, "Portfolio") 

如何建立在ASP.Net中称为投资组合的子文件夹的路径?

我遇到了一个问题,建议从http://??????????/Portfolio。我如何找到??????部分?

我想上面的代码,但得到了一个完全不同的目录...

我不想去年的子文件夹之前硬编码的一切,因为这将是另一台服务器上的不同。

回答

2

调用Directory.GetCurrentDirectory()从ASP.NET应用程序调用它时可能会产生误导。解决此问题的最佳方法是使用Server.MapPath(),这将允许您将Web文件夹映射到其在磁盘上的位置。

因此,例如,运行此代码:

string path = Server.MapPath("~/Portfolio"); 

将设置“path”等于在磁盘上的文件夹的位置。

如果您从Page或控件类的上下文之外运行此代码,将无法直接访问Server对象。在这种情况下,你的代码应该是这样的:

string path = HttpContext.Current.Server.MapPath("~/Portfolio"); 
0

如果我理解你的权利,你可以使用访问:

"/portfolio" 

系统将串联“/组合”的网址,例如如果它是“http://site.com”你会得到“http://site.com/portfolio

如果你想的物理路径,则可以使用

server.mappath("/portfolio") 

,它将返回关联的物理目录(考试ple E:\ websites \ site \ portfolio“)

0

以下行的一片让你的“bin”目录

Assembly asm = Assembly.GetExecutingAssembly(); 
String strAppHome = Path.GetDirectoryName(asm.CodeBase).Replace("file:\\", "");