Renomeando um nome de arquivo inválido no NTFS

9

Recentemente, emprestei meu disco flash a um dos meus amigos, que tinha o Mac OS. Ele copiou um arquivo, cujo nome incluía uma barra invertida (\).

O disco flash está formatado em NTFS. O Windows não permite esses nomes de arquivos e nem abre o arquivo, nem o exclui, nem me permite excluir o arquivo.

Existem abordagens ingênuas para esse problema, como:

  • Formatar o disco flash;
  • Devolvendo ao meu amigo e pedindo para renomeá-lo;
  • Carregando em algum Linux ao vivo e renomeá-lo.

No entanto, estou procurando algo mais inteligente, como um programa que possa executar o truque no Windows.

PS: Existe uma ferramenta chamada NTFSWalker que pode procurar os registros MFT do NTFS, mas não pode fazer alterações neles.

MS Dousti
fonte
2
Você encontrará Como forçar o Windows XP a renomear um arquivo com um caractere especial? uma leitura útil também - a única resposta real para o Linux.
DMA57361
Tente verificar disco. (Clique com o botão direito do mouse no ícone do disco → Propriedades → Ferramentas → em Verificação de erros, clique em Verificar agora → marque Corrigir automaticamente erros do sistema de arquivos.) Essa foi uma das sugestões da pergunta vinculada acima, mas nunca foi tentada.
Bavi_H
@ Bavi_H: Desculpe, o Check Disk também não funcionou.
MS Dousti 25/11

Respostas:

5

Todas as APIs do Win32 usam a barra invertida como um separador de diretório. Há uma pequena chance de que o subsistema POSIX o aceite como parte do nome do arquivo, para que você possa tentar mvno Services for Unix .


Eu não diria que o uso do Linux para corrigir é "ingênuo", se o Unix foi o que o quebrou em primeiro lugar.

user1686
fonte
Eu tentei mvantes. Não deu certo.
MS Dousti
Sobre "ingênuo": eu quis dizer uma solução que vem à mente em primeiro lugar.
MS Dousti
@Sadeq: Do que mvvocê está falando?
user1686
2
@Sadeq: Ambos são programas simples do Win32. Mencionei explicitamente o Services for Unix por um motivo - seus programas são executados em um subsistema "POSIX" separado , com regras diferentes das do Win32.
user1686
1
O subsistema POSIX também usa NtOpenFilepara abrir arquivos e NtOpenFiletrata o caminho como um todo, não como uma série de componentes (há um sinalizador para usar a semântica "POSIX", mas isso é apenas para distinção entre maiúsculas e minúsculas) - portanto, segue as mesmas regras.
usar o seguinte comando
3

Descobri que o 7zip geralmente pode lidar com arquivos estranhos quando o Windows falha (útil para caminhos que são muito longos para serem excluídos normalmente) - experimente.

Dentrasi
fonte
Desculpa. 7zdá o mesmo erro que o Windows.
MS Dousti
Também não funciona para mim #
31812 Mark Jeronimus
2
7z funcionou um pouco de mágica para o meu caso, que era um nome de arquivo que terminava com um caractere espacial não compatível. Eu tentei uma tonelada de utilitários para lidar com isso, mas apenas o 7z funcionou.
Mike Simpson
2

Você pode usar CHKDSK /Fo prompt do DOS para corrigir os erros e RD /S <DIR>onde <DIR>está o diretório que deseja excluir. Tenha cuidado, pois isso excluirá o diretório e todos os seus subdiretórios.

juliano
fonte
-1

Abri a pasta com arquivos de caracteres inacessíveis no gerenciador de arquivos 7zip. Lá, eu renomeei e BINGO, foi renomeado. Assim, eu consegui acessar o arquivo.

7zip é um utilitário de compactação de arquivos freeware, melhor que o RAR.

Uma corrida
fonte
5
Sua resposta não é a mesma que a de Dentrasi?
MS Dousti