如果我有一个常规控制台应用程序(或任何其他应用程序)并使用Windows资源管理器将文件拖到.exe文件上(为了将该文件用作“命令行输入”),目录设置为其他目录(我的主文件夹?),而不是应用程序所在的目录。如果我通过双击它来启动应用程序,则正确设置当前目录。
这是什么原因?有没有办法将应用程序的文件夹用作当前目录?
答案 0 :(得分:2)
在autoitscript.com上搜索我找到的原因:
[应用程序]只是继承了Explorer的工作目录
这与我自己的观察结果一致,例如键盘上的可编程键。
我的工作是重置工作目录。在C#中,你可以这样做:
System.Environment.CurrentDirectory = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
在不使用命令行的情况下在Linux上启动单声道应用程序时,您还必须执行此操作。
答案 1 :(得分:0)
这正是您的应用程序不应该依赖于工作目录的原因。将在命令行上指定文件的完整路径。如果需要,可以从中解析路径。