【发布时间】:2019-09-06 02:57:23
【问题描述】:
我需要获取当前驱动器之外的另一个驱动器的当前工作目录。 从阅读答案到 How to get current working directory of another drive in Batch? 我知道此信息存储在由 cmd.exe(或我正在使用的任何 shell)传递给我的进程的环境变量中。但是 C# 类 Environment 似乎无法让我访问这些。
基本上,我正在寻找批处理命令的等效项
w:
cd w:\foo
c:
cd c:\bar
echo %=w:%
在那个例子中,我想得到“w:\foo”,但 Environment.CurrentDirectory 显然会给我“c:\bar”。
我正在寻找类似 Environment.GetCurrentDirectory("w:") 的东西。
【问题讨论】:
-
我不明白你在做什么。只有一个工作目录...?
-
@John:一个进程只有一个工作目录。但是,每个驱动器号也有一个关联的“当前目录”。 IE。如果在你的命令提示符下你的当前目录在
C:驱动器上,并且你输入cd d:\some\sub\directory,你的当前目录仍然是它原来的样子,但是现在如果你通过输入D:来改变你当前的驱动器,你会发现 那个 驱动器上的当前目录设置为\some\sub\directory。这是 DOS/Windows 的一个奇怪的小怪癖,但它确实有效。 -
@Peter 有趣。我不知道!