如何删除 Windows 所称不存在的文件?

如何删除 Windows 所称不存在的文件?

这是一个与此 QA 非常相似的问题(如何删除“不存在”的文件),只不过我用的完全是 Windows 电脑,而该问题中的 OP 是通过 SSH 连接到运行 Linux 的 NAS。

我当时正在使用gitGitKraken 并执行合并,但后来我中止了合并。在合并过程中,我对同一分支中两次提交的两个文件进行了差异分析,并且git(或 GitKraken - 我不确定谁对该文件负责)在磁盘上创建了两个文件,表示合并冲突的文件,每个文件都表示每次提交时的文件状态。

完成后,我尝试删除文件(删除后无法清理) - 两个文件中的一个被成功删除,但另一个文件无法删除。

“未找到项目”错误消息的屏幕截图

  • 该文件存在于本地卷(三星 PCI-Express NVMe SSD)上
  • 该卷格式化为 NTFS 3.1,运行 Windows Server 2016
  • 该文件出现在 Windows 资源管理器中dir(见上面的截图)
  • 尝试在 Windows 资源管理器中对文件执行任何操作,包括移动、重命名、删除和 Shift+Delete,都会导致此错误消息:

    未找到项目
    无法找到该项目
    它不再位于 C:\git\redacted\
    请验证该项目的位置并重试。

    DemoServiceClient.cs~WIP
    类型:文件
    大小:8.35KB
    修改日期:2017-12-14 12:30

    [重试] [取消]

  • 文件属性对话框是空的:

    在此处输入图片描述

  • 文件属性对话框的安全选项卡显示:

    所请求的安全信息不可用或无法显示

  • 文件名总长度为 130 个字符,在MAX_PATH(260 个字符)以内

  • dir /a该文件作为普通文件出现(即不是 NTFS 链接或重新解析点):

     Directory of C:\git\redacted
    
    2017-12-14  12:36    <DIR>          .
    2017-12-14  12:36    <DIR>          ..
    2017-12-14  12:30             8,559 DemoServiceClient.cs~WIP.
                1 File(s)          8,559 bytes
                2 Dir(s)  223,416,360,960 bytes free
    
  • 运行del DemoServiceClient.cs~WIP出现此错误:

    找不到 C:\git\redacted\DemoServiceClient.cs~WIP`

  • chkdsk未报告任何问题:

    Stage 1: Examining basic file system structure ...
      1140992 file records processed.
    File verification completed.
      19089 large file records processed.
      0 bad file records processed.
    
    Stage 2: Examining file name linkage ...
      1527444 index entries processed.
    Index verification completed.
      0 unindexed files scanned.
      0 unindexed files recovered to lost and found.
    
    Stage 3: Examining security descriptors ...
    Security descriptor verification completed.
      193227 data files processed.
    CHKDSK is verifying Usn Journal...
      34291080 USN bytes processed.
    Usn Journal verification completed.
    
    Windows has scanned the file system and found no problems.
    No further action is required.
    
     499526655 KB total disk space.
     290439980 KB in 856509 files.
        464848 KB in 193228 indexes.
             0 KB in bad sectors.
       1258155 KB in use by the system.
         65536 KB occupied by the log file.
     207363672 KB available on disk.
    
          4096 bytes in each allocation unit.
     124881663 total allocation units on disk.
      51840918 allocation units available on disk.
    

答案1

我遇到了同样的问题并找到了解决方案这里

编辑:您必须将文件移动/重命名到可以使用提供的解决方案删除的文件夹中(或者检查是否已经可以删除该文件的父文件夹,如果可能)。

编辑2: NTFS(或 Windows 本身)不喜欢/允许文件名以点或空格结尾。您需要从文件/文件夹名称中删除点/空格。您可能需要从 DOS 提示符 (CMD) 执行此操作,但您也可以从 CMD 中删除它。

要尝试的命令:delrdmoveren

以下是 Rayza73 的回答,供参考。
我几乎尝试了他所做的所有方法,还尝试过几次重命名文件夹。

我在使用 Server 2012 Std 时遇到了同样的问题。我尝试了各种获取父文件夹所有权的选项,因为我尝试删除的文件夹的安全属性为空,使用 CMD 和 Dir /x 等。我甚至尝试共享父文件夹,然后使用 Server 2008 R2。这些都不起作用。当我尝试 Dir /x 时,Server 2012 不会显示带有 ~1 的 8 个字符的文件名。我尝试自己输入,但那也不起作用。然后我发现文件夹名称末尾有一个空格。然后我再次尝试使用空格的所有 CMD 选项,仍然没有运气。然后我终于偶然发现了这个解决方案:

打开 CMD 然后输入:

rd /s "\\?\D:\bad\folder\path "

例子:

rd /s "\\?\D:\Sharedata\folder1\folder2 "

注意,folder2 后面的空格与文件夹名称中的空格相同。
显然,D: 是包含该文件夹的驱动器。

在我的例子中,文件夹名称末尾没有空格或点,只是 Teracopy 运行失败后留下的一个顽固文件夹。但我的文件夹中有几个无法删除的文件夹。

这招很管用。

我的跑步方式是:
rd /s "\\?\G:\Backups\MacMini\BADFOLDER"

如果它是一个文件而不是文件夹,只需调整命令。该命令rd代表“删除目录”,因此在文件中使用它毫无意义:

del "\\?\D:\Mainfolder\folder1\myfile."

如果遇到问题,您也可以尝试在删除它之前将其移动到其他地方。

提示:您可以使用 TAB 自动完成 中的文件和文件夹名称cmd。重复 TAB 将为您提供下一个选择。

答案2

在所有常规、命令提示符和 PowerShell 选项都失败后,我通过一个小技巧解决了这个问题。

  1. 获取一些读取和制作压缩文件的程序。我用的是 7-Zip,WinRar 可能也行。

  2. 右键点击损坏的文件,点击添加到存档。然后在选项中选择压缩后删除原始文件。

  3. 保留其他选项并继续。坏文件将被删除,并在其位置创建一个压缩文件。

  4. 有问题的命名结构会随着扩展名(.zip .rar .7zp 等)的添加而发生变化,并且可以删除。

答案3

了解这是一个老话题,然而,在尝试为这个完全相同的错误找到解决方案时,我已经阅读了许多(比我想要的还多)的话题,但这些话题完全是徒劳无功的。

我无法按照其他帖子的建议操作:无法删除、移动、重命名或存档以进行删除(但文件通过 dir 命令显示)。如果这符合您的要求,那么以下帖子为我的情况提供了一个可行的解决方案,并且有类似的反馈。

我在提取文件后遇到了这个问题,在我的桌面上放置了一个“b.”文件 - 如果您的文件以空格结尾,这也可能起作用。

上面建议的“解决方案”在我的 Windows 10 机器 (1909) 上不起作用。感谢 Micha 在下面的帖子中发帖 - 由于标题中有“windows 7”,所以这不是我想要的,但在我的案例中确实有效。

如何在 Windows 7 中删除以点结尾的文件?

以管理员身份启动命令提示符并根据您的需要修改以下内容。

del "\\?\<full path to file>"

例子:

del "\\?\C:\Users\Username\Desktop\filename."

答案4

我的情况也一样;文件名末尾有一个点:“John notes of February”。(Windows 7) 这里推荐的步骤没有帮助。“dir”命令返回相同的内容;文件名末尾有一个点。我打开了命令提示符 (cmd)。我切换到桌面文件夹 (chdir)。我检查了没有其他文件以单词“John”开头 (dir)。我输入了命令:DEL John* 问题解决了。我重新启动了 Windows 以确认问题没有再次发生。但是,我们谈论的是 Windows 7。我不能确定该文件将来不会自行恢复。警告:如果有任何其他文件以单词开头 (John),它也将被删除,并且不会进入回收站。

相关内容