Comment puis-je renommer un fichier dont le nom est en soi un chemin complet (par exemple, commence par «g: \»)? [dupliquer]

30

Cette question a déjà une réponse ici:

Par inadvertance, j'ai créé un fichier nommé g:\filename.csvsur Windows XP via un script Python.

Notez que g:\filename.csvc'est le nom du fichier. En fait, il est enregistré sur le lecteur F :.

Je ne peux pas le renommer en utilisant l'invite de commande ( ren oldfilename newfilename) ou en utilisant F2dans une fenêtre de l'Explorateur. Il dit "impossible de lire à partir du lecteur" - Windows pense que le fichier se trouve sur le lecteur G :.

Existe-t-il un moyen de le renommer?

Vineet
la source
ça *filename.csvmarche?
BlueRaja - Danny Pflughoeft
8
Aussi, bien que vous ayez déjà votre solution, pourriez-vous publier le code qui a créé le fichier? Je ne pensais pas que les API de fichiers Windows vous permettaient même de spécifier un nom de fichier non valide.
BlueRaja - Danny Pflughoeft
5
Vous devez déposer un bogue sur Linux / Ubuntu. Le pilote du système de fichiers doit savoir qu'il s'agit d'un nom de fichier non valide pour le lecteur ciblé et ne doit donc pas autoriser la création d'un tel fichier. Il devrait toujours permettre d'adresser ces fichiers s'ils existent déjà, afin de les supprimer ou de les renommer.
Devolus
2
En fait, ce nom de fichier n'a rien d'invalide en ce qui concerne NTFS, c'est simplement une limitation de Windows qui l'empêche d'être correctement référencé.
phogg

Réponses:

21

Cela ne pouvait pas être la solution la plus rapide, mais cela devrait fonctionner.
Si vous démarrez une distribution Live Linux, vous pouvez la supprimer, car Linux utilise une méthode différente pour identifier les partitions et ne sera pas obligé de penser que votre fichier est un lecteur. Je vous suggère Parted Magic , qui possède de nombreux outils pratiques pour la maintenance des disques et du système et, à côté de votre préoccupation actuelle, est toujours utile de l'avoir à portée de main.

Sekhemty
la source
1
Je fais un double démarrage avec Ubuntu. Cela peut donc être essayé facilement. Permettez-moi d'essayer de donner votre avis ici. Merci.
Vineet
7
Terminé. Depuis Ubuntu, j'ai supprimé. le fichier. Merci.
Vineet
1
J'avais l'habitude d'avoir la réponse la mieux notée qui disait utiliser \\? \ Avant le nom. J'avais tort et cette méthode ne fonctionnera pas, j'ai donc supprimé ma réponse. Vous devez utiliser la méthode de cette réponse ou l'une des autres réponses.
Scott Chamberlain
7

Si votre système d'exploitation Windows, vous pouvez utiliser l'astuce suivante:

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.

Remarque, si vous avez réussi à créer un fichier avec un nom conou d'autres noms réservés de périphériques Windows, vous n'avez pas de chance avec l'approche.

Don César D'Bazar
la source
6

Vous pouvez également essayer ...

Depuis un Windows Command Prompt:

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

ou

ren "F:*.csv" "filename.csv"
Kevin Fegan
la source
4

Vous pouvez toujours essayer Cygwin . Le filtre de nom de chemin d'accès devrait être plus conforme à ce type d'erreur, car cela ne viole pas les normes POSIX. Installez bash et fileutils, puis essayezrm /cygdrive/f/g:\\filename.csv

Rich Homolka
la source