为什么不能在运行框中输入“C:\folder\subfolder”?

为什么不能在运行框中输入“C:\folder\subfolder”?

很久以前,我就偶然发现了这些明显的不一致之处,但一直没有找到一个令人满意的解释来解释这一切是如何运作的。所有这些都可以在 Windows XP 的“开始”>“运行”框中输入。

  1. C:folder(没有反斜杠)有效。

  2. C:Documents and Settings\<username>作品。

  3. 可是,为什么不起作用呢C:folder\subfolder

  4. C:folder\..\folder\subfolder请注意,当它看起来逻辑上等同时,它确实有效。

我找到了这个,但它解释了为什么应该工作... http://en.wikipedia.org/wiki/Path_(computing)#MS-DOS/Microsoft_Windows_style

答案1

我刚刚测试了一下,它运行良好。你需要检查的最大问题是 Explorer 当前使用的目录。它应该是你的主目录(在我这里工作的地方是 H:)。

为了使C:folder\subfolder语法起作用,folder必须位于资源管理器的当前工作目录下。

就我而言,我有H:\testsH:\tests\200930H:\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:\具有长名称的文件夹\子文件夹”

我寻求解释但至今未能找到。

相关内容