【发布时间】:2011-09-21 10:47:18
【问题描述】:
序言 - 如果我在 windows 中使用我的应用程序的安装目录路径附加 PATH 环境变量,我不需要 CD 到安装目录来执行它。
问题 - 我的应用程序中的相对文件路径是否会根据控制台中的当前执行路径或根据安装目录进行解释。奇怪的是,在我的应用程序中,路径是相对于当前执行路径进行解释的,从而导致异常(找不到文件等)。
请帮帮我。
【问题讨论】:
标签: c# .net visual-studio c#-4.0
序言 - 如果我在 windows 中使用我的应用程序的安装目录路径附加 PATH 环境变量,我不需要 CD 到安装目录来执行它。
问题 - 我的应用程序中的相对文件路径是否会根据控制台中的当前执行路径或根据安装目录进行解释。奇怪的是,在我的应用程序中,路径是相对于当前执行路径进行解释的,从而导致异常(找不到文件等)。
请帮帮我。
【问题讨论】:
标签: c# .net visual-studio c#-4.0
相对路径将被解释为相对于Environment.CurrentDirectory。
它将默认为进程启动的目录,但可以更改。
【讨论】:
您遇到的行为(在当前工作目录的上下文中评估相对路径)是设计使然。
如果您想始终在当前执行的程序集旁边放置一个文件,那么这段代码可能会派上用场:
public static string GetPathRelativeToExecutingAssemblyLocation(string aRelativePath)
{
return Path.Combine(
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
aRelativePath);
}
【讨论】: