【问题标题】:How to programmatically find an ASP.NET App_Data folder path如何以编程方式查找 ASP.NET App_Data 文件夹路径
【发布时间】:2011-08-01 04:32:48
【问题描述】:

我需要在那里读取一个文件。我尝试了 Assembly.ExecutingAssembly 等,但这不起作用。

【问题讨论】:

标签: asp.net


【解决方案1】:

从 asp.net 很简单:

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

【讨论】:

  • 除非有时不是。部署的网站通常在~/bin/App_Data 中有他们的App_Data,但在本地使用~/App_Data。在这些情况下,使用 |DataDirectory| 替换会被破坏。见stackoverflow.com/questions/18706945/…
  • @CharlesBurns 已修复,请参阅您的问题
  • 我在一些cs类中这样做,而Server对象出现了问题。 HttpContext.Current.Server 使它工作。
  • @ozn 这些天来使用 App_Data 并不常见,除了 azure 使用它来放置 Webjobs。另一个问题是,CharlesBurns 提到的 App_Data 可能位于 bin 目录中
【解决方案2】:

另一种方式是:

AppDomain.CurrentDomain.GetData("DataDirectory");

【讨论】:

  • 这在 MSDN 上没有记录,所以我不建议使用它
【解决方案3】:

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

上面的代码对我有用。

【讨论】:

  • 迄今为止的最佳答案。这个可以完成这项工作。谢谢。
【解决方案4】:

我需要为 AppData 执行 ELMAH 脚本,所以使用这个

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

【讨论】:

    猜你喜欢
    • 2010-11-19
    • 1970-01-01
    • 2015-09-07
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    • 2015-02-08
    • 1970-01-01
    相关资源
    最近更新 更多