2011-04-08 165 views
18

我需要在那裏讀取文件。我試過Assembly.ExecutingAssembly等,但沒有奏效。如何以編程方式查找ASP.NET App_Data文件夾路徑

+1

可能重複 - (http://stackoverflow.com/ [ASP.NET MVC查找絕對路徑從控制器App_Data文件夾]問題/ 1268738/asp-net-mvc-find-absolute-path-to-the-app-data-folder-from-controller) – Kev 2011-04-08 09:06:19

回答

26

從asp.net很簡單:

Server.MapPath("~/App_Data");//anywhere 
+1

除了有時它不是。部署的網站通常將其App_Data放在'〜/ bin/App_Data'中,但在本地使用'〜/ App_Data'。在這些情況下,使用'| DataDirectory |'替換被打破。請參閱http://stackoverflow.com/questions/18706945/datadirectory-returns-wrong-path-to-appdata-folder – 2013-09-16 04:08:39

+0

@CharlesBurns修復,請參閱您的問題 – Roland 2015-12-21 13:39:29

+0

我這樣做是在一些cs類和服務器對象是給出問題。 HttpContext.Current.Server使它工作。 – 2017-04-26 20:25:14

7

另一種方式是:

AppDomain.CurrentDomain.GetData("DataDirectory"); 
+1

這在MSDN上沒有記錄,所以我不會推薦使用這個 – Hoppe 2014-10-16 14:03:00

+1

@Hoppe但是我使用它並且它對我有效 – 2014-10-18 06:01:13

3

String base = AppDomain.CurrentDomain.BaseDirectory; //使用上面的代碼,你會得到你的應用程序的根目錄。 String pathToData_App = base + "/App_Data/SqLite.db";

上面的代碼適用於我。

2

我需要執行ELMAH腳本應用程序數據因此使用這種

var elmahScript = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "ELMAH-1.2-db-SQLServer.sql"); 
相關問題