![](/img/trans.png)
[英]How to find the location of a web application root directory from within my application?
[英]Find a root directory of the web application
我正在嘗試在服務器上找到一個根文件夾。 什么都行不通,或行不通
@{
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>
}
}
不起作用
如何解決呢?
您可以使用以下內容:
Server.MapPath("~");
~
始終是ASP.NET應用程序的根。 如果將其插入到Razor視圖中,它將被轉換為“外部訪問”的適當路徑,例如,如果將站點托管在根目錄中,則~/Content/site.css
將轉換為/Content/site.css
例如,如果/Page1/Content/site.css
托管在名為Page1
的虛擬目錄中, /Page1/Content/site.css
為。 因此,要獲取您需要“映射”的絕對路徑。
如果您無權訪問Server
,則也可以使用HostingEnvironment.ApplicationPhysicalPath
。
嘗試
Server.MapPath("~");
要么:
HostingEnvironment.ApplicationPhysicalPath
請參考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進行硬編碼一樣:)。 希望你能得到我。
謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.