¿Cómo puedo cambiar el nombre de un archivo cuyo nombre es en sí mismo una ruta completa (por ejemplo, comienza con "g: \")? [duplicar]

30

Esta pregunta ya tiene una respuesta aquí:

Inadvertidamente, he creado un archivo llamado g:\filename.csven Windows XP a través de un script Python.

Tenga en cuenta que g:\filename.csves el nombre de archivo. En realidad se guarda en la unidad F:.

No puedo cambiarle el nombre usando el símbolo del sistema ( ren oldfilename newfilename) o F2en una ventana del Explorador. Dice "no se puede leer desde la unidad": Windows cree que el archivo está en la unidad G:.

¿Hay alguna forma de cambiarle el nombre?

Vineet
fuente
hace *filename.csvel trabajo?
BlueRaja - Danny Pflughoeft
8
Además, aunque ya tiene su solución, ¿podría publicar el código que creó el archivo? No pensé que las API de Windows File incluso le permitieran especificar un nombre de archivo no válido ...
BlueRaja - Danny Pflughoeft
55
Debe presentar un error a Linux / Ubuntu. El controlador del sistema de archivos debe saber que este es un nombre de archivo no válido para la unidad de destino y, en consecuencia, no debe permitir crear dicho archivo. Sin embargo, aún debería permitir abordar dichos archivos si ya existen, para eliminarlos o cambiarles el nombre.
Devolus
2
En realidad, no hay nada inválido sobre este nombre de archivo en lo que respecta a NTFS, es simplemente una limitación de Windows que impide que se haga referencia a él correctamente.
phogg

Respuestas:

21

Esta no podría ser la solución más rápida, pero debería funcionar.
Si inicia una distribución Live Linux, puede eliminarla, ya que Linux utiliza un método diferente para identificar particiones y no se verá obligado a pensar que su archivo es una unidad. Le sugiero que Parted Magic , que tiene muchas herramientas útiles para el mantenimiento de discos y sistemas y, además de su preocupación actual, siempre sea útil tenerlo a mano.

Sekhemty
fuente
1
Estoy de arranque dual con Ubuntu. Entonces esto se puede probar fácilmente. Déjame intentar y dar retroalimentación aquí. Gracias.
Vineet
77
Hecho. De Ubuntu, borré. el archivo. Gracias.
Vineet
1
Solía ​​tener la respuesta mejor calificada que decía usar \\? \ Antes del nombre. Estaba equivocado y ese método no funcionará, así que eliminé mi respuesta. Debe usar el método de esta respuesta o una de las otras respuestas.
Scott Chamberlain
7

Si su sistema operativo Windows, puede utilizar el siguiente truco:

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.

Tenga en cuenta que si logró crear un archivo con nombre cono algún otro nombre reservado para dispositivos Windows, entonces no tendrá suerte con el enfoque.

Don Cesar D'Bazar
fuente
6

También puedes probar ...

Desde un Windows Command Prompt:

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

o

ren "F:*.csv" "filename.csv"
Kevin Fegan
fuente
4

Siempre puedes probar Cygwin . El filtro de nombre de ruta debería ser más compatible con este tipo de error, ya que esto no viola los estándares POSIX. Instale bash y fileutils y luego intenterm /cygdrive/f/g:\\filename.csv

Rich Homolka
fuente