只是好奇,
我遇到的问题是我使用了 System::IO::Directory::GetDirectories("c:")
而不是 System::IO::Directory::GetDirectories("c:\\")
。
它最终从 "C:\Windows\System32"
中检索目录。如果我没有对其他驱动器使用反斜杠,我最终会得到我不知道存在的目录。
有人能告诉我为什么会这样吗?有模式吗?什么时候使用?
最佳答案
当您在路径开头(或驱动器盘符之后)省略反斜杠时,该路径被视为相对当前目录。您可以使用 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
的内容
关于c++ - 系统::IO::目录::GetDirectories( "c: vs c:\\"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16496787/