如果我有一个常规的控制台应用程序(或与此相关的任何其他应用程序)并使用 Windows 资源管理器将一个文件拖到 .exe 文件上(以便将该文件用作“命令行输入”),则当前目录设置为其他目录(我的主文件夹?),而不是应用程序所在的目录。如果我通过双击启动应用程序,则当前目录设置正确。
这是什么原因?有没有办法将应用程序的文件夹用作当前目录?
最佳答案
寻找原因我在 autoitscript.com 上找到了这个:
[The application] simply inherits whatever Explorer's working directory is
这与我自己的观察一致,例如键盘上的可编程键。
我的解决方法是重置工作目录。在 C# 中,您可以这样做:
System.Environment.CurrentDirectory = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
如果不使用命令行在 Linux 上启动单声道应用程序,您也必须执行此操作。
关于windows - 将文件拖到 .exe 设置不同的工作目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/882850/