Como posso renomear um arquivo cujo nome é um caminho completo (por exemplo, começa com "g: \")? [duplicado]

30

Esta pergunta já tem uma resposta aqui:

Inadvertidamente, eu criei um arquivo nomeado g:\filename.csvno Windows XP através de um script Python.

Observe que esse g:\filename.csvé o nome do arquivo. Na verdade, ele é salvo na unidade F:.

Não consigo renomeá-lo usando o prompt de comando ( ren oldfilename newfilename) ou usando F2uma janela do Explorer. Ele diz "não é possível ler da unidade" - o Windows acha que o arquivo está na unidade G :.

Existe alguma maneira de renomeá-lo?

Vineet
fonte
faz *filename.csvo trabalho?
BlueRaja - Danny Pflughoeft
8
Além disso, embora você já tenha a sua solução, poderia postar o código que criou o arquivo? Eu não acho que a APIs de Arquivos do Windows ainda permitiu que você especifique um nome de arquivo inválido ..
BlueRaja - Danny Pflughoeft
5
Você deve registrar um bug no Linux / Ubuntu. O driver do sistema de arquivos deve saber que esse é um nome de arquivo inválido para a unidade de destino e, consequentemente, não deve permitir a criação desse arquivo. Ainda deve permitir endereçar esses arquivos, se eles já existirem, para remover ou renomeá-los.
Devolus
2
Na verdade, não há nada de inválido nesse nome de arquivo no que diz respeito ao NTFS, é apenas uma limitação do Windows que impede que ele seja referenciado corretamente.
Phogg

Respostas:

21

Esta não poderia ser a solução mais rápida, mas deveria funcionar.
Se você inicializar uma distribuição Linux Live, poderá excluí-la, pois o Linux usa um método diferente para identificar partições e não será forçado a pensar que seu arquivo é uma unidade. Eu sugiro que você Parted Magic , que possui muitas ferramentas úteis para manutenção de disco e sistema e, além de sua preocupação atual, seja sempre útil tê-lo em mãos.

Sekhemty
fonte
1
Estou inicializando com o Ubuntu. Portanto, isso pode ser tentado facilmente. Deixe-me tentar dar um feedback aqui. Obrigado.
Vineet
7
Feito. Do Ubuntu, eu apaguei. o arquivo. Obrigado.
Vineet
1
Eu costumava ter a resposta mais votada que dizia usar \\? \ Antes do nome. Eu estava errado e esse método não funcionou, então excluí minha resposta. Você precisa usar o método desta resposta ou uma das outras respostas.
Scott Chamberlain
7

Se o seu sistema operacional Windows, você pode usar o seguinte truque:

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.

Observe que, se você conseguiu criar um arquivo com nome conou algum outro nome reservado para o dispositivo Windows, ficará sem sorte com a abordagem.

Don Cesar D'Bazar
fonte
6

Você também pode tentar ...

Em um Windows Command Prompt:

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

ou

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

Você sempre pode tentar Cygwin . O filtro do nome do caminho deve ser mais compatível com esse tipo de erro, pois isso não viola os padrões POSIX. Instale o bash e o fileutils e tenterm /cygdrive/f/g:\\filename.csv

Rich Homolka
fonte