Windows资源管理器地址栏启动应用时,应用如何获取当前目录路径?
Windows资源管理器地址栏启动应用时,应用如何获取当前目录路径?
嗨,这个问题我之前也琢磨过!其实答案不是命令行参数,而是**工作目录(Working Directory)**在起作用。
当你在资源管理器的地址栏输入cmd、PowerShell或者其他程序名时,Windows在启动这个新进程的时候,会自动把你当前打开的资源管理器文件夹设置为这个进程的当前工作目录——这个信息是进程环境的一部分,不是通过命令行参数传递的,所以你只打印参数当然看不到啦。
举个例子,如果你在D:\Projects文件夹的地址栏打开cmd,那cmd启动后默认的路径就是D:\Projects,这就是因为系统把这个目录设成了cmd进程的工作目录。
如果你想在自己的程序里获取这个路径,不同语言有不同的方法:
- Python里可以用
os.getcwd() - C#里用
Directory.GetCurrentDirectory() - C++里调用Windows API的
GetCurrentDirectory()函数
简单说,这是Windows进程创建的标准行为:从哪个文件夹启动程序,那个文件夹就会成为新进程的工作目录,除非你通过快捷方式或者其他方式手动指定了别的工作目录。
备注:内容来源于stack exchange,提问作者Евгений Крамаров




