如何删除名称中包含无效字符的文件?(Win7)

如何删除名称中包含无效字符的文件?(Win7)

我试图从 Windows 7 Ultimate x64 中的硬盘中删除一个名为“Kanno, Yoko - Where Does This Ocean Go?.mp3”的文件,但它一直告诉我无法删除,因为文件名太长或无效(因为文件名中有“?”)。我无法重命名它,无法删除它,无论是使用 Explorer 还是 CMD 都无法这样做。我也无法使用 Explorer 或 CMD 删除包含它的文件夹。

有人能给出答案或建议吗?我不知道这种名字是怎么产生的(软件会根据文件标题重命名文件,但仍然不应该用这种无效的名字保存文件)。无论如何,我现在该如何摆脱它?

答案1

微软有一篇关于难以删除文件

对我来说,大多数情况下,在路径前面加上 就\\?\可以达到我想要的效果。所以你可以尝试 del "\\?\c:\path\Kanno, Yoko - Where Does This Ocean Go?.mp3"

还有\\.\,但我不知道具体的区别是什么\\?\

这两个前缀似乎禁用了一些检查和/或使 del 使用比通常的 Win32 API 更低级别的 API。

答案2

已解决:我将硬盘插入外壳,并通过 USB 将其作为 USB 驱动器连接到我的 Android 平板电脑。使用我的 Android 文件浏览器,我导航到该文件并将其删除。Android 也不允许你命名带有“?”的文件,当文件仍然带有“?”时,我也无法播放该文件,但 Android 允许我重命名/复制/移动/删除它,因此问题解决了,只是在 Win7 上不行。仅供参考,一旦我从名称中删除“?”,我就可以正常播放 mp3 文件。

答案3

我刚刚这样做了,我回答这个问题只是为了帮助 Windows 7-10 上的其他人。我确实在 Winrar 中打开了文件的位置并更改了它的名称,只是因为 Windows 文件管理器无法更改名称,因为它有一个无效字符。更改名称后,我删除了该文件。EZPZ 也是不错的音乐选择,我喜欢攻壳机动队!

答案4

从命令行尝试此操作:

del Kanno*.mp3

或者尝试找到文件的简称并删除它。我认为 dir /x 会列出简称,但我记不太清楚了。

我能想到的唯一可能产生这种情况的原因是无效的字符编码。当系统遇到编码错误的文本时,它会显示为“?”。

与其他系统相比,Windows 在文件名中不允许使用通配符方面更加谨慎。很多年前,我记得一位同事在 UNIX 系统上创建了一个名为 * 的文件。那件事并没有以微笑结束。

相关内容