Sil*_*ind 5 c# windows console
可能重复:
如何使用C#找出我的控制台应用程序运行的目录?
如何获取运行程序的控制台的当前工作目录,以便我可以解析作为程序args传递的相对路径?
让我说我把我的程序放在这里:c:\tools\program.exe
但是我从各个地方调用它.让我们说我在这里:C:\Users\Me\Documents\我运行这个命令program.exe --src=somefile.txt --dest=subdir\otherfile.txt
Environment.CurrentDirectory并且System.Reflection.Assembly.GetExecutingAssembly().Location将返回c:\tools,但我希望能够解决somefile.txt和subdir\oterfile.txt是相对于路径C:\Users\Me\Documents\.
======更新======
谢谢您的帮助.它似乎
Environment.CurrentDirectory按预期工作.事实证明,在我的情况下,问题是由Xenocode的Postbuild工具(现在称为Spoon Virtual Application Studio)引起的,我偶尔会将所有程序的文件(包括dll,config等)"打包"到一个可执行文件中.它非常方便,但在这种情况下,"虚拟化"功能搞砸了程序的Environment变量.我设法解决了这个问题.
Ste*_*eve 14
Environment.CurrentDirectory为您提供当前工作目录
让我举一个简单的例子:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Startup: " + Environment.CurrentDirectory);
Environment.CurrentDirectory = @"D:\temp";
Console.WriteLine("After:" + Environment.CurrentDirectory);
}
}
Run Code Online (Sandbox Code Playgroud)
现在我创建了两个名为的文件夹D:\temp,D:\temp2
我将可执行文件放入D:\temp
打开命令提示符,并使用cd D:\temp2
From我运行的目录设置当前工作目录..\temp\mytestapp.exe
输出是
Startup: D:\temp2
After: D:\temp
Run Code Online (Sandbox Code Playgroud)
好奇心:
这是Net 1.1中Environment.CurrentDirectory的文档
获取并设置当前目录的完全限定路径; 也就是说,此进程从中开始的目录.
这是NET 4.0中的文档
获取或设置当前工作目录的标准路径.
| 归档时间: |
|
| 查看次数: |
12706 次 |
| 最近记录: |