4

只是好奇,

我遇到了我使用System::IO::Directory::GetDirectories("c:")而不是System::IO::Directory::GetDirectories("c:\\").

它最终从"C:\Windows\System32". 如果我没有在其他驱动器上使用反斜杠,我最终会得到我不知道存在的目录。

有人能告诉我为什么会这样吗?有图案吗?什么时候使用?

4

1 回答 1

4

当您省略路径开头(或驱动器号之后)的反斜杠时,该路径被视为对于当前目录。您可以使用方法获取当前目录System::IO::Directory::GetCurrentDirectory()的值,也可以使用方法更改它System::IO::Directory::SetCurrentDirectory(path)

为了澄清考虑这一点:当当前目录为C:\Windows时,路径C:test.txt相当于C:\Windows\test.txt.

GetDirectories方法返回指定路径中的所有目录,甚至是隐藏目录或系统目录(通常在 Windows 资源管理器中看不到)。所以我猜你是在谈论其他驱动器中的系统目录,比如System Volume Information$RECYCLE.BIN.

值得一提的是,在 Windows shell (cmd.exe) 中,我们可以为每个驱动器拥有单独的当前目录。当你运行时:

C:\Windows\System32> cd d:\Temp
C:\Windows\System32> dir c:

你得到的内容,C:\Windows\System32然后当你运行时:

C:\Windows\System32> dir d:

你得到的内容D:\Temp

于 2013-05-11T12:13:58.813 回答