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?


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.


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.


6

Você também pode tentar ...

Em um Windows Command Prompt:

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

ou

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

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.