很久以前,我就偶然发现了这些明显的不一致之处,但一直没有找到一个令人满意的解释来解释这一切是如何运作的。所有这些都可以在 Windows XP 的“开始”>“运行”框中输入。
C:folder
(没有反斜杠)有效。C:Documents and Settings\<username>
作品。可是,为什么不起作用呢
C:folder\subfolder
?C:folder\..\folder\subfolder
请注意,当它看起来逻辑上等同时,它确实有效。
我找到了这个,但它解释了为什么应该工作... http://en.wikipedia.org/wiki/Path_(computing)#MS-DOS/Microsoft_Windows_style
答案1
我刚刚测试了一下,它运行良好。你需要检查的最大问题是 Explorer 当前使用的目录。它应该是你的主目录(在我这里工作的地方是 H:)。
为了使C:folder\subfolder
语法起作用,folder
必须位于资源管理器的当前工作目录下。
就我而言,我有H:\tests
、H:\tests\200930
和H:\tests\200940
并正在运行
H:tests\200940
按预期工作。
我想你需要确保它subfolder
存在并且folder\subfolder
位于你的资源管理器的工作目录下。
您可以使用以下方式查看资源管理器的当前目录Sysinternals 的 Process Explorer 工具。运行 Process Explorer 后,找到 Explorer.exe,双击它,然后查看当前目录。
您实际上可以使用命令提示符并尝试以下操作来自己确认此行为(请注意,您至少需要两个驱动器来测试这一点)
H:\> dir
...
Directory of H:\
2009-08-26 09:13 <DIR> Tests
...
H:\> cd Tests
H:\Tests> c:
C:\> dir H:
...
Directory of H:\Tests
2009-08-26 09:13 <DIR> 200930
2009-08-26 09:24 <DIR> 200940
...
C:\> dir H:200940
...
Directory of H:\Tests\200940
...
C:\> cd Windows
C:\Windows> H:
H:\Tests> dir C:System32
...
Directory of C:\WINDOWS\System32
...
(这...
是不相关的剪切数据)
正如你所看到的驱动器:目录语法与每个驱动器的当前工作目录高度相关。对于资源管理器,它依赖于用户的当前工作目录和每个其他驱动器的根目录。
因此,虽然我的主目录是,但H:\
我可以使用H:directory
语法来获取主目录下的任何文件夹,但如果我使用,C:directory
我只能访问该驱动器的根目录。
答案2
正确的语法是 C:\folder\subfolder,请注意 C 后面的反斜杠:我的猜测是,c:\folder 名称有一定的余量,但它不能完全起作用,从而导致您注意到的不一致。
答案3
有效路径与无效路径之间的区别在于名称中是否有空格。如果您将完整名称(冒号后没有反斜杠)放在引号中并尝试打开它,您将得到与不包含空格的文件夹相同的错误。
对于直接打开文件夹,两种方式均可;但对于打开包含子文件夹的路径,则不行。
例如这将起作用(当然如果文件夹存在):
- c:具有长名称的文件夹\子文件夹
- c:文件夹名称较长且无空格
但这不会:
- c:\folder\subfolder 带有长名称且不带空格
- “c:\具有长名称的文件夹\子文件夹”
我寻求解释但至今未能找到。