这是一个与此 QA 非常相似的问题(如何删除“不存在”的文件),除了我使用的是完全 Windows 的计算机,而该问题中的 OP 是通过 SSH 连接到运行 Linux 的 NAS。
我正在使用gitGitKraken 并且正在执行后来我中止的合并。在合并期间,我从同一分支中的两个提交中git区分了两个文件,并且(或 GitKraken - 我不确定谁负责该文件,确切地说)在磁盘上创建了两个文件,代表一个合并冲突的文件,每个文件代表每次提交的文件状态。
完成后,我尝试删除文件(它自己清理失败) - 两个文件中的一个已成功删除,但另一个文件无法删除。
dir(见上面的屏幕截图)尝试在 Windows 资源管理器中对文件执行任何操作,包括移动、重命名、删除和 Shift+Delete,都会导致以下错误消息:
Item Not Found
找不到这个项目
它不再位于 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
Run Code Online (Sandbox Code Playgroud)运行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.
Run Code Online (Sandbox Code Playgroud)我遇到了同样的问题,并在这里找到了解决方案。
编辑:您必须将文件移动/重命名到可以使用提供的解决方案删除的文件夹中(或检查您是否已经可以删除文件的父文件夹,如果可能)。
Edit2: NTFS(或 Windows 本身)不喜欢/允许文件名以点或空格结尾。您需要从文件/文件夹名称中删除点/空格。您可能需要从 DOS 提示符 (CMD) 中删除它,但您也可以从 CMD 中删除它。
命令尝试:del,rd,move和ren
这里有 Rayza73 的回答供参考。
我几乎尝试了他所做的一切,还尝试了几次重命名文件夹。
我在使用 Server 2012 Std 时遇到了同样的问题。我尝试了获取父文件夹所有权的各种选项,因为我尝试删除的文件夹的安全属性为空,使用 CMD 和 Dir /x 等。我什至尝试共享父文件夹,然后使用 Server 2008 R2。他们都没有工作。当我尝试 Dir /x Server 2012 时,没有显示带有 ~1.x 的 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代表“remove dir”,因此在文件中使用它是没有意义的:
del "\\?\D:\Mainfolder\folder1\myfile."
如果遇到问题,您也可以尝试在删除之前将其移动到其他地方。
提示:您可以使用 TAB 自动完成cmd. 重复 TAB 会给你下一个选择。
小智 6
我只是在这里添加这个给谷歌搜索指导他们的人。在所有正常、cmd 和 powershell 选项都失败后,我通过一个小技巧解决了问题。
获取一些读取和制作压缩文件的程序。我使用了 7 zip,WinRar 也可能会工作。
右键单击坏文件,然后单击添加到存档。然后在选项中选择压缩后删除原始文件。
保持其他选项不变并继续。坏文件将被删除,并在其位置创建一个压缩文件。
有问题的命名结构会随着扩展名(.zip .rar .7zp 等)的添加而改变,并且可以删除。
小智 5
了解这是一个旧线程,但是,在尝试找到这个完全相同的错误的解决方案时,我已经阅读了许多(超过 id 之类的)线程,现在其中完全是徒劳的追逐。
我无法执行其他线程建议的操作:无法删除、移动、重命名或存档以进行删除(但是文件是通过 dir 命令出现的)。如果这符合您的要求,那么以下线程在我的案例中提供了一个可行的解决方案,并且有类似的反馈。
我刚刚在提取文件后遇到了这个问题,其中放置了“b”。文件放在我的桌面上 - 如果您的文件以空格结尾,这也可能有效。
上面建议的“解决方案”在我的 Windows 10 计算机 (1909) 上不起作用。感谢以下线程中的 Micha - 由于标题中包含“windows 7”,这不是我想要的,但是在我的情况下确实有效。
以管理员身份启动命令提示符并根据您的需要修改以下内容。
del "\\?\<full path to file>"
Run Code Online (Sandbox Code Playgroud)
例子:
del "\\?\C:\Users\Username\Desktop\filename."
Run Code Online (Sandbox Code Playgroud)