2011-04-08 70 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"); 
相关问题