如何搜索ASP.Net网站中的子目录?
我知道如果这是一个常规的Winform项目,我可以通过以下方式轻松获得它:
Environment.CurrentDirectory
或
System.IO.Directory.GetCurrentDirectory()
然后
string[] directories = System.IO.Path.Combine(Environment.CurrentDirectory, "Portfolio")
如何在ASP.Net中构建名为Portfolio的子文件夹的路径?
我在构建http://??????????/Portfolio的所有内容时遇到了问题。怎么找到??????一部分?
我尝试了上面的代码,但得到了一个完全不同的目录...
我不想在最后一个子文件夹之前硬编码所有内容,因为它在另一台服务器上会有所不同。
答案 0 :(得分:2)
从ASP.NET应用程序调用它时,调用Directory.GetCurrentDirectory()
可能会产生误导。解决此问题的最佳方法是使用Server.MapPath()
代替,这样您就可以将网络文件夹映射到磁盘上的位置。
例如,运行此代码:
string path = Server.MapPath("~/Portfolio");
将“path
”设置为等于磁盘上该文件夹的位置。
如果您从Page
或控件类的上下文之外运行此代码,则无法直接访问Server
对象。在这种情况下,您的代码将如下所示:
string path = HttpContext.Current.Server.MapPath("~/Portfolio");
答案 1 :(得分:0)
如果我理解你,你可以通过以下方式访问它:
"/portfolio"
系统会将“/ portfolio”连接到网址,例如,如果是“http://site.com”,您将获得“http://site.com/portfolio”
如果您需要物理路径,可以使用
server.mappath("/portfolio")
它将返回相关的物理目录(例如E:\ websites \ site \ portfolio“)
答案 2 :(得分:0)
以下一行将您带到'bin'目录
Assembly asm = Assembly.GetExecutingAssembly();
String strAppHome = Path.GetDirectoryName(asm.CodeBase).Replace("file:\\", "");