c# - 在 web.config 中指定相对文件位置以供标准 C# 类库使用

标签 c# asp.net

我正在努力寻找一种在 web.config appSettings 中指定文件位置的方法,该方法避免使用硬编码路径但允许非“网络感知”C# 库查找文件.

C# 库使用标准的 File.OpenFile.Exists 方法等来操作存储在我的 Web 应用程序 (ASP.NET) 中的数据文件。 NET MVC) 树,例如下:

\content\data\MyDataFile.txt

要求:

  • 我希望能够指定我的路径,例如:
        <appSettings>
this-->     <add key="MyFileLocation" value="~\content\data\MyDataFile.txt" />
not -->     <add key="MyFileLocation" value="c:\inetpub\wwwroot\foo\content\data\MyDataFile.txt" />
        </appSettings>
  • 我不希望 C# 库知道正在使用它的 Web 应用程序,因为它在其他软件中使用,并且 Web 应用程序不需要知道 C# 库的配置,所以我不如果可能的话,真的很想在层之间传递配置信息。

关于如何干净地执行此操作有什么建议吗?谢谢!

最佳答案

您可以使用 Path.Combine 来组合 AppDomain.CurrentDomain.BaseDirectory 和您的相对路径。

这将为您提供一个相对于 ASP.NET 应用程序中 ASP.NET 根目录 (~/) 的路径,或者一个相对于包含 WinForms 或控制台应用程序中可执行文件的目录的路径。

关于c# - 在 web.config 中指定相对文件位置以供标准 C# 类库使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4616646/

相关文章:

ASP.NET 和不完整的 HTTP 请求

asp.net - 在数据库中存储日期时间?

c# - Azure DevOps - 通过 Api 更新用户配置文件

c# - RestApiSDK 引用过时的 PayPalCoreSDK dll

asp.net - Azure 中的信号量超时期限已过期

javascript - 什么是 jQuery Unobtrusive Validation?

c# - 在 RestSharp 中获取 REST 请求的原始 JSON 数据

c# - 从 C# 中的对象中清除所有字符串成员

c# - 在 C# 中将字符串解析为 DateTime

c# - 测试相似的字符串内容