相对路径 - Visual Studio - C#
Relative Path - Visual Studio - C#
在 App.config 中,我在解决方案文件夹下为我的文件提供了这个相对路径。我在 Web 应用程序中使用此相对路径。
value="..\filename.log"/>
& 也试过
value="~/filename.log"/>
但是没有用,然后我调试了代码,才知道它正在尝试在此路径中查找文件
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE..
解决方案
确保 ~ 不适用于网络应用程序时的相对路径。因此,如果您想在 Web 应用程序中提供相对路径,请使用以下代码。
string logFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ConfigurationManager.AppSettings["LogFile"]);
这里"LogFile"是键值"filename.log"
如果你需要找到一个与执行代码相关的文件夹,你可以使用类似
的东西
var location = System.Reflection.Assembly.GetExecutingAssembly().Location;
...获取执行代码的当前位置。然后您可以通过以下方式获取文件夹:
var directory = System.IO.Path.GetDirectoryName(location);
您可以使用 Path.Combine:
添加相对路径
var location = System.Reflection.Assembly.GetExecutingAssembly().Location;
var directory = System.IO.Path.GetDirectoryName(location);
var path = System.IO.Path.Combine(directory, "..\filename.log");
...这将产生一个绝对路径。
在你的配置文件中使用~/
访问目录
value="~/filename.log"/>
您可以使用 System.Environment.CurrentDirectory
或 System.IO.Directory.GetCurrentDirectory()
获取当前解决方案目录(工作目录)。因此,您可以直接在代码中使用它来访问该日志文件。
String path = System.IO.Directory.GetCurrentDirectory()+"/filename.log";
在 App.config 中,我在解决方案文件夹下为我的文件提供了这个相对路径。我在 Web 应用程序中使用此相对路径。
value="..\filename.log"/>
& 也试过
value="~/filename.log"/>
但是没有用,然后我调试了代码,才知道它正在尝试在此路径中查找文件
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE..
解决方案
确保 ~ 不适用于网络应用程序时的相对路径。因此,如果您想在 Web 应用程序中提供相对路径,请使用以下代码。
string logFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ConfigurationManager.AppSettings["LogFile"]);
这里"LogFile"是键值"filename.log"
如果你需要找到一个与执行代码相关的文件夹,你可以使用类似
的东西var location = System.Reflection.Assembly.GetExecutingAssembly().Location;
...获取执行代码的当前位置。然后您可以通过以下方式获取文件夹:
var directory = System.IO.Path.GetDirectoryName(location);
您可以使用 Path.Combine:
添加相对路径var location = System.Reflection.Assembly.GetExecutingAssembly().Location;
var directory = System.IO.Path.GetDirectoryName(location);
var path = System.IO.Path.Combine(directory, "..\filename.log");
...这将产生一个绝对路径。
在你的配置文件中使用~/
访问目录
value="~/filename.log"/>
您可以使用 System.Environment.CurrentDirectory
或 System.IO.Directory.GetCurrentDirectory()
获取当前解决方案目录(工作目录)。因此,您可以直接在代码中使用它来访问该日志文件。
String path = System.IO.Directory.GetCurrentDirectory()+"/filename.log";