通常当我在C#中构建一个可以消化命令行参数的应用程序时,如果这些参数是文件路径字符串,我可以选择使用相对路径以及绝对路径来引用我计算机上的特定文件并使用它在程序中。
在我的上一个项目中,如果我在命令提示符下为其提供相对路径,我的应用程序将无法运行。但在 VS 2010 的 Debug模式下,它会消化相对路径。在命令提示符下,它需要一个绝对路径才能工作。
最佳答案
您需要设置工作目录。请参阅:Directory.SetCurrentDirectory Method
示例:
System.IO.Directory.SetCurrentDirectory(System.AppDomain.CurrentDomain.BaseDirectory);
在调试构建中,当前目录默认设置为 debug\bin。
指定被调试程序的工作目录。在 Visual C# 中,工作目录是应用程序默认从\bin\debug 启动的目录。
http://msdn.microsoft.com/en-us/library/2kf0yb05.aspx
您还可以使用 Assembly.GetEntryAssembly() 或 Assembly.GetExecutingAssembly() 检索程序集的路径,然后使用 Location 属性或 CodeBase 属性。
关于c# - 需要绝对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11903358/