如何重命名其名称本身为完整路径的文件(例如,以“ g:\”开头)?[重复]


30

这个问题已经在这里有了答案:

不经意间,我已经g:\filename.csv通过Python脚本在Windows XP上创建了一个命名文件。

请注意,这g:\filename.csv是文件名。实际上,它保存在F:驱动器上。

我无法使用命令提示符(ren oldfilename newfilename)或F2在资源管理器窗口中使用它来重命名。它说“无法从驱动器读取”-Windows认为文件在G:驱动器上。

有什么办法可以重命名吗?


*filename.csv工作?
BlueRaja-Danny Pflughoeft

8
另外,尽管您已经有了解决方案,但是可以发布创建文件的代码吗?我认为Windows File API甚至都不允许您指定无效的文件名。
BlueRaja-Danny Pflughoeft13年

5
您应该向Linux / Ubuntu提交错误。文件系统驱动程序应该知道这是目标驱动器的无效文件名,因此不应允许创建这样的文件。它仍然应该允许解决这些文件(如果已存在)的问题,以便删除或重命名它们。
Devolus


2
就NTFS而言,此文件名实际上没有任何无效的地方,这仅仅是Windows的一个限制,阻止了它的正确引用。
phogg

Answers:


21

这可能不是最快的解决方案,但应该可以。
如果您启动Live Linux发行版,则可以将其删除,因为Linux使用不同的方法来标识分区,因此不会被迫认为您的文件是驱动器。我建议您使用Parted Magic,它具有许多方便的磁盘和系统维护工具,除了您当前关心的问题之外,随时使用它也很有用。


1
我正在使用Ubuntu双重引导。因此,可以轻松尝试。让我在这里尝试并提供反馈。谢谢。
Vineet

7
做完了 我从Ubuntu删除了。文件。谢谢。
Vineet

1
我以前曾在名称前使用\\?\表示评价最高的答案。我错了,该方法无效,因此我删除了答案。您需要使用此答案的方法或其他答案之一。
Scott Chamberlain

7

如果您的操作系统是Windows,则可以使用以下技巧:

1. Issue command `dir /X`
2. Find out your file in 8 dot 3 notation
3. Use 8 dot 3 notation for file operations as ren, del, copy, print and others.

请注意,如果您设法使用名称con或其他Windows设备保留名称创建文件,那么您将无法使用该方法。


6

您也可以尝试...

在Windows中Command Prompt

ren "F:???filename.csv" "filename.csv"

要么

ren "F:*.csv" "filename.csv"

4

您可以随时尝试Cygwin。其中的路径名过滤器应更符合此类错误,因为这不会违反POSIX标准。安装bash和fileutils,然后尝试rm /cygdrive/f/g:\\filename.csv

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.