2014-04-30 47 views
0

我正試圖在服務器上找到根文件夾。實在不行,或者工作錯誤找到Web應用程序的根目錄

@{ 
     string [] list = Directory.GetFiles(Directory.GetCurrentDirectory()); 
     foreach(var item in list) 
     { 
      <p>@item</p> 
     } 
    } 

顯示正是我不需要

@{ 
     string [] list = Directory.GetFiles("~/"); 
     foreach(var item in list) 
     { 
      <p>@item</p> 
     } 

}

不工作

如何解決這個問題?

+0

我認爲你是一個有點是confused.GetFiles方法返回一個directory.What中的所有文件的一些東西別名字符串數組是你的目標??? – makemoney2010

+0

可能的重複[如何獲得我的ASP.NET服務器應用程序的根目錄?](http://stackoverflow.com/questions/17682843/how-do-i-get-the-root-directory-of-我-ASP網服務器的應用程序) – captainsac

回答

2

您可以使用以下方法:

Server.MapPath("~"); 

~總是在ASP.NET應用程序的根。如果您將其插入Razor視圖,則會將其轉換爲適合「外部訪問」的路徑,例如如果該網站託管在根目錄中,或者例如,將其轉換爲/Content/site.css~/Content/site.css。如果它被託管在名爲Page1的虛擬目錄中,則爲/Page1/Content/site.css。因此獲得你需要的「映射它」的絕對路徑。

如果您無權訪問Server,也可以使用HostingEnvironment.ApplicationPhysicalPath

1

嘗試

Server.MapPath("~"); 

或:

HostingEnvironment.ApplicationPhysicalPath 
0

參考http://msdn.microsoft.com/en-us/library/ms178116.aspx。 爲了您的方便我修改了代碼:

string [] list = Directory.GetFiles(Server.MapPath("~")); 
     StringBuilder sb=new StringBuilder(); 
     foreach (var item in list) 
     { 
      sb.Append(item + "\n"); 
     } 

     Response.Write(sb); 

即使我給你回答,我會建議嘗試有路徑,因爲路徑固定就像硬編碼是在web.config中或在數據庫配置登錄ID :)。希望你有我。

感謝

相關問題