5

如果我有一个常规的控制台应用程序(或任何其他应用程序)并使用 Windows 资源管理器将文件拖到 .exe 文件上(以便将该文件用作“命令行输入”),则设置当前目录到其他目录(我的主文件夹?),而不是应用程序所在的目录。如果我通过双击启动应用程序,则当前目录设置正确。

这是什么原因?有没有办法将应用程序的文件夹用作当前目录?

4

2 回答 2

3

寻找一个原因,我在autoitscript.com上找到了这个:

[应用程序] 简单地继承 Explorer 的工作目录

这与我自己的观察一致,例如键盘上的可编程键。

我的解决方法是重置工作目录。在 C# 中,您可以这样做:

System.Environment.CurrentDirectory = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

当您在 Linux 上不使用命令行启动单声道应用程序时,您也必须这样做。

于 2009-05-19T14:01:34.120 回答
0

这正是为什么您的应用程序一开始不应该依赖工作目录的原因。文件的完整路径将在命令行中指定。如果需要,解析它的路径。

于 2009-07-16T00:25:24.770 回答