如何删除包含“非法”字符的文件夹?

如何删除包含“非法”字符的文件夹?

我将 USB 闪存盘插入 Mac,它获得了一些不需要的隐藏文件夹。(请参阅问题防止 MacOS 生成 .* 和 ._* 文件以达到预防的目的。

我现在想从驱动器中删除这些文件,但遇到了一个问题。fseventsd文件夹内有一个子文件夹,除非我在文件夹选项中禁用“隐藏受保护的操作系统文件”,否则不会显示该子文件夹。然后,我看到一个没有名称的文件夹图标,尝试删除它不会产生任何操作,也不会出现任何错误。尝试打开它会导致错误:

E:\fseventsd\ 无法访问

文件名、目录名或卷标语法不正确。

因此我使用命令提示符查看了一下:

命令提示符隐藏文件夹视图

我必须承认,如果我不知道父文件夹来自 Mac OSX,我会强烈怀疑它是病毒,因为文件夹名称在 ASCII 中呈现为笑脸。

显然这是 ASCII 字符“01”:

旧 ASCII 图表

我在命令提示符中发出的任何命令也都导致各种语法错误。我决定尝试 Powershell。

不幸的是 1) 我对 Powershell 不是很熟悉,2) 奇怪的文件夹名称似乎也遇到了类似的困难。我在 Powershell 中尝试列出父目录内容时收到以下错误:

Get-ChildItem:路径中有非法字符。

Powershell 错误

我怎样才能删除该文件夹?

答案1

我能够通过chkdsk /f在驱动器上运行来“修复”这个问题。它将fseventsd文件夹转换为一个可以轻松删除的文件。但是,我不知道这个“修复”是否是因为子文件夹在 chkdsk 中显示损坏,还是卷上还有其他东西允许它工作。

提供此作为答案以防它对其他人有用。

答案2

不幸的是,有些文件名是 Windows API 无法处理的。

如果您只是想删除文件,您可以将任何想要保留的文件从闪存驱动器中移出,然后重新格式化闪存驱动器。

如果您想保留所有文件,则需要使用另一个操作系统来重命名它们 - 要么返回到您最初使用的 Mac,要么使用 Linux Live CD。

如果你不想去另一台电脑或关闭 Windows,另一个可行的选择是在里面安装 Linux虚拟盒。然后,您可以使用 USB 过滤器驱动程序授予 Linux 客户操作系统对 USB 驱动器的控制权,并重命名 Virtualbox 中的文件。

答案3

我很确定有第三种方法可以做到这一点,至少在 Windows XP 下。

在资源管理器中右键单击该文件。文件名将有一个奇怪的占位符代替非法字符。删除它并关闭属性窗口。它会重命名文件。至少根据我的经验,它是这样的。

干杯

答案4

我遇到了同样的问题并按如下方式解决:

  • 在PC的Windows服务器上安装NFS
  • 在 Linux PC 或 Solaris Unix 服务器上安装 Windows 文件
  • Unix 根用户必须具有 Windows PC 的完全访问权限
  • 使用以下命令从 Unix 系统中删除文件夹rm -r

相关内容