答案1
解决了
我刚刚不小心创建了一个带有 3 个点的文件夹...
。
我只是尝试构建这样的角度应用程序:
ng build --outputpath=.../public
常规的 Windows 命令不会删除它。
我刚刚意识到,如果 ng cli 命令可以创建该文件夹,那么它也可以删除它。
我只是在代码中故意犯了一个错误并执行了相同的命令。
轰隆隆——文件夹不见了。
这可能会对某些人有帮助。
针对非 Angular 用户的更多信息
安装 npm 并转到文件所在
...
路径然后
npm install -g @angular/cli
ng new mockproject
。这将mockproject
在您的路径中创建文件夹。编辑
package.json
并添加到“build”行--outputpath=.../public
将文件夹中的所有内容复制
mockproject
到...
编辑
app.module.ts
并在那里添加一些垃圾字符(在项目中造成错误)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 中的样子如下:
这就是你通过“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 编写大量代码来打开该文件夹并查看其中的真实内容。