如何通过编程方式查找ASP.NET App_Data文件夹路径

25

我需要读取一个文件。我尝试使用Assembly.ExecutingAssembly等方法,但都无法正常工作。


4个回答

27

从asp.net中很简单:

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

2
除了有时候不是这样的。部署的网站通常将其App_Data放在~/bin/App_Data中,但在本地使用~/App_Data。在这些情况下,使用|DataDirectory|替换是无效的。请参见https://dev59.com/Y3bZa4cB1Zd3GeqPIKaS。 - Charles Burns
@CharlesBurns 已修复,请查看您的问题。 - Roland
我正在一些计算机科学课程中,Server对象出现了问题。使用HttpContext.Current.Server解决了这个问题。 - Vasily Hall
现在很少使用App_Data,除了Azure将其用于放置Webjobs。另一个问题是,App_Data可以在bin目录中,正如CharlesBurns所提到的。 - Alberto León

12

另一种方法是:

AppDomain.CurrentDomain.GetData("DataDirectory");

1
这个在 MSDN 上没有记录,我不建议使用。 - Hoppe

4

String base = AppDomain.CurrentDomain.BaseDirectory; //使用上述代码,您将获得应用程序的基本目录。 String pathToData_App = base + "/App_Data/SqLite.db";

以上代码对我有效。


到目前为止,这是最好的答案。这个可以完成任务。谢谢。 - Paras Parmar

3

我需要为AppData执行ELMAH脚本,因此使用了这个:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接