Jos*_*osh 2 rename filenames windows-xp
可能的重复:
如何强制 Windows XP 使用特殊字符重命名文件?
我有几个文件名中包含诸如“?”等字符的文件。和 ":" 是 windows 禁止的。我不确定他们是如何使用这些名称到达那里的,因为我无法手动创建具有这些名称的文件。它们是从 HFS 驱动器中恢复的,但是恢复它们的工具是在 Windows 下运行的,因此我认为在创建它们时应该受到相同的限制。
无论如何...现在它们都在这里,我可以打开它们,但是我不能移动、复制、重命名或删除它们。我想删除其中的一些,但大多数我想保存并复制到另一个驱动器。我该怎么办?
小智 5
原因 5:文件名包含 Win32 命名空间中的保留名称 如果文件名包含 Win32 命名空间中的保留名称(例如“lpt1”),您可能无法删除该文件。要解决此问题,请使用非 Win32 程序重命名该文件。您可以使用 POSIX 工具或任何其他使用适当内部语法的工具来使用该文件。
此外,如果您使用特定的语法来指定文件的路径,您也许能够使用一些内置命令来绕过典型的 Win32 保留名称检查。例如,如果在 Windows XP 中使用 Del 命令,如果使用以下特殊语法指定文件的完整路径,则可以删除名为“lpt1”的文件:
del \\?\c:\path_to_file\lpt1
Run Code Online (Sandbox Code Playgroud)
有关在 Windows NT 和 Windows 2000 下删除具有保留名称的文件的详细信息,请单击下面的文章编号以查看 Microsoft 知识库中相应的文章:
120716如何在 Windows 中删除具有保留名称的文件
有关在 Windows XP 下删除具有保留名称的文件的详细信息,请单击下面的文章编号以查看 Microsoft 知识库中的文章:
315226如何在 Windows XP 中删除带有保留名称的文件
如果使用典型的 Win32 CreateFile 机制打开文件句柄,则某些文件名将保留给旧式 DOS 设备。为了向后兼容,不允许使用这些文件名,并且不能使用典型的 Win32 文件调用来创建它们。但是,此问题不是 NTFS 的限制。
您可以使用 Win32 程序绕过创建(或删除)文件时执行的典型名称检查,方法是使用与遍历比 MAX_PATH 更深的文件夹相同的技术。此外,某些 POSIX 工具不受这些名称检查的约束。
原因 6:文件名在 Win32 命名空间中包含无效名称 如果文件名包含无效名称(例如,文件名有尾随空格或尾随句点或文件名),您可能无法删除文件name 仅由一个空格组成)。要解决此问题,请使用使用适当内部语法的工具来删除文件。您可以使用“\?\”语法和一些工具来操作这些文件,例如:
del "\\?\c:\path_to_file_that contains a trailing space.txt "
Run Code Online (Sandbox Code Playgroud)
此问题的原因类似于原因 4。但是,如果您使用典型的 Win32 语法打开名称中包含尾随空格或尾随句点的文件,则在打开实际文件之前会去除尾随空格或句点。因此,如果您在同一文件夹中有两个名为“AFile.txt”和“AFile.txt”的文件(注意文件名后面的空格),如果您尝试使用标准 Win32 调用打开第二个文件,则会打开代替第一个文件。类似地,如果您有一个名称仅为“”(空格字符)的文件,并且您尝试使用标准 Win32 调用打开它,则您会打开该文件的父文件夹。在这种情况下,如果您尝试更改这些文件的安全设置,您可能无法执行此操作,或者您可能会意外更改不同文件的设置。