C++ System::IO::Directory::GetDirectory(“c:vs c:\\”)
只是出于好奇 我的问题是我使用了C++ System::IO::Directory::GetDirectory(“c:vs c:\\”),c++,.net,C++,.net,只是出于好奇 我的问题是我使用了System::IO::Directory::GetDirectories(“c:”)而不是System::IO::Directory::GetDirectories(“c:\\”) 它最终从“C:\Windows\System32”检索目录。如果我没有对其他驱动器使用反斜杠,我最终会得到我不知道存在的目录 有人能告诉我为什么会这样吗?有模式吗?何时使用?如果在路径开头(或驱动器号之后)省略反斜杠,则认为该路径相对于当前目录。您可以使用System::IO::di
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 < /Cord>等效于
系统卷信息
和$RECYCLE.BIN
值得一提的是,在Windowsshell(cmd.exe)中,每个驱动器都可以有单独的当前目录。运行时:
C:\Windows\System32> cd d:\Temp
C:\Windows\System32> dir c:
C:\Windows\System32> dir d:
您将获得C:\Windows\System32
的内容,然后在运行时:
C:\Windows\System32> cd d:\Temp
C:\Windows\System32> dir c:
C:\Windows\System32> dir d:
您得到了
D:\Temp
+1的内容。我忘记了相对路径。但我仍然不明白的是:GetCurrentDirectory返回了项目文件夹“j:\files\solutionrion\project”(j:\是存储项目的驱动器)。当我使用未准备就绪的驱动器的字母时,会引发异常,当我使用已准备就绪的驱动器的字母时,会重定向到一些奇怪的位置。隐藏文件设置为可见,因此我可以看到目录包含的所有内容。这意味着(驱动器):和(驱动器)之间存在差异:\n我在我的计算机中看不到您的问题。查询其他驱动器时,我会获取驱动器根目录的内容。即使没有反斜杠?是。例如,运行GetCurrentDirectory(“D:”)
时的输出是什么?您获取内容的目录是什么?当我选中d:
时,我获取了特定驱动器上的文件,包括一些我以前从未见过的额外内容<代码>c:将我带到c:\Windows\System32
。这两个都是内部硬盘驱动器。外部硬盘驱动器和闪存驱动器显示正确的内容。