“....” 是什么意思?

“....” 是什么意思?

我写了一些代码来用 C++ 创建一个名为“E:\hkhkhkhk\....”的目录。它实际上迭代地创建了“....”。并且父目录“hkhkhkhk”无法删除。

我想知道系统如何解释“....”。

代码如下,在虚拟机中执行。

#include <windows.h>
#include <iostream>

using namespace std;

int main()
{
    if (!CreateDirectoryA("E:\\hkhkhkhk\\....\\", NULL))
        cout << GetLastError() << endl;

    getchar();
    return 0;
}

乔什

答案1

Windows 不允许程序使用以点结尾的路径;每当程序尝试访问这样的路径时,所有的点都会被悄悄地从末尾删除。

由于您的路径实际上以反斜杠结尾,因此您在创建目录时绕过了此限制,但其他程序(例如 Windows 资源管理器)不会这样做。

因此,当您在资源管理器中双击该目录时,它会尝试更改为E:\hkhkhkhk\....但实际上会E:\hkhkhkhk\(与父目录相同),从而创建错觉无限递归,而实际上你根本就不会去任何地方。

相关内容