如何删除仅包含三个点 [...] 的文件夹(指向其父文件夹)

如何删除仅包含三个点 [...] 的文件夹(指向其父文件夹)

在(德国)Server 2008上,我们发现一个名为G:\Daten\Büro_GL\...

在 Windows 资源管理器中进入文件夹时,...它只是指向其父文件夹(G:\Daten\Büro_GL)。

无法删除该文件夹,因为它会同时删除所有子文件夹。此外,denying List folder content仅适用于This folder不起作用。然后拒绝也适用于父文件夹。

在此处输入图片描述

文件夹 [...] 是一个文件夹而不是符号链接:

在此处输入图片描述

我们希望避免移动文件夹的内容,以免中断生产系统的工作流程。

(我也很想知道如何创建这样的文件夹)

答案1

解决了

我刚刚不小心创建了一个带有 3 个点的文件夹...

我只是尝试构建这样的角度应用程序:

ng build --outputpath=.../public

常规的 Windows 命令不会删除它。

我刚刚意识到,如果 ng cli 命令可以创建该文件夹,那么它也可以删除它。

我只是在代码中故意犯了一个错误并执行了相同的命令。

轰隆隆——文件夹不见了。

这可能会对某些人有帮助。

针对非 Angular 用户的更多信息

  1. 安装 npm 并转到文件所在...路径

  2. 然后npm install -g @angular/cli

  3. ng new mockproject。这将mockproject在您的路径中创建文件夹。

  4. 编辑package.json并添加到“build”行--outputpath=.../public

  5. 将文件夹中的所有内容复制mockproject...

  6. 编辑app.module.ts并在那里添加一些垃圾字符(在项目中造成错误)

  7. npm run build。这将导致错误。

现在您没有该...文件夹。


背景:我认为ng使用 posix - 因此,它可以创建这些类似系统的文件。我猜任何像 sygwin 这样的 posix 工具都可以删除这些文件。

答案2

我的同事解决了这个问题,遗憾的是我在意识到这一点之前关闭了 cmd。我会写下我记得的事情。

我的同事在 C: 的根目录中找到了“...”目录,因此我尝试了以下操作:

dir "C:\...\"

然后就显示一个空目录。所以

rmdir "C:\...\"

删除目录

一点背景:

Windows 文件 IO API 首先调用文件名检查。“...”被互通为“..” - 因此,向上移动一个目录。尝试在 Exporer“C:\Windows..\ProgramData”中进行 thyping。(仅供参考:在API提到:如果文件名以“\?\”开头,则检查被禁用,并且可以访问此类目录:Because it turns off automatic expansion of the path string, the "\\?\" prefix also allows the use of ".." and "." in the path names, which can be useful if you are attempting to perform operations on a file with these otherwise reserved relative path specifiers as part of the fully qualified path.但这是针对程序员的信息。)

编辑:

因为讨论“这个答案适合这个问题吗?”:

我已经测试过了。创建了一个目录。它在 Explorer 中的样子如下:

Windows 资源管理器多次出现在“...”中

这就是你通过“dir”看到的内容:

cmd 使用“dir ...”:空目录

因此:目录为空,但 Explorer 显示“错误”信息。考虑到 Windows API 的工作方式,这并非冲突:文件 API 会尝试解释文件/目录名称。因此,如果目录上有“..”等,则将其向上移动。这就是您在 Explorer 视图中看到的内容。在 cmd 中,我尝试找到一个字符串,强制 Windows API 不进行解释。

答案3

这种情况只有在 NTFS 数据结构混乱,导致文件夹成为其自己的祖先时才会发生。驱动程序可能有问题。驱动器本身可能出现故障,或者损坏可能只是来自宇宙射线。

该实用程序的一项工作chkdsk是清理实际上包含自身的文件夹 - 文件夹结构内的循环。(来源.) 由于chkdsk /?状态/C跳过了对循环的检查,因此可以推断正常行为是修复它们。

在提升的命令提示符下运行chkdsk /f D:以修复问题以及任何其他不一致问题。修复期间卷必须处于离线状态。如果是启动卷,则需要在安排磁盘检查后重新启动。

答案4

您看到 ... 出现这种行为的原因是由于 win32 兼容层的问题导致 ... 总是转到当前文件夹的祖父级(它模拟 NetWare 行为但意外应用于本地文件系统)。

您无法使用 cmd.exe 或 Windows 资源管理器查看此文件夹内部。如果您可以让 interix 运行(此操作系统对于 LUFS 来说太旧了),您可以通过这种方式进入。否则,您将不得不使用 FILE_FLAG_POSIX_SEMANTICS 编写大量代码来打开该文件夹并查看其中的真实内容。

相关内容