我正在努力寻找一种在 web.config
appSettings 中指定文件位置的方法,该方法避免使用硬编码路径但允许非“网络感知”C# 库查找文件.
C# 库使用标准的 File.Open
、File.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/