É possível parar o Notepad ++ de procurar dentro de arquivos binários?

2

Acabei de descobrir, por meio de um infeliz acidente, que o recurso Find in Files no Notepad ++ pesquisa arquivos dentro de arquivos RAR. Depois de executar várias consultas "localizar e substituir", todos os arquivos RAR que eu tinha na pasta de trabalho estão corrompidos.

Eu realmente acho que pesquisar dentro de binários deve ser um recurso opcional, mas por enquanto eu realmente gostaria de recusar isso. Alguém sabe a configuração correta para isso?

    
por Knocks X 16.06.2015 / 00:45

2 respostas

3

O Notepad ++ não pesquisa e substitui arquivos arquivados internos. Seus arquivos foram corrompidos porque você executou a pesquisa e a substituição em seus arquivos RAR, e não nos arquivos contidos neles.

Suponha que você queira converter todos os arquivos de texto da sua pasta do Mac para o Unix. Para fazer isso, você deve substituir todos os caracteres CR ( 0x0D ) por LF ( 0x0A ). Vamos supor também que sua pasta contenha o seguinte arquivo chamado "Apple.txt.gz":

1f 8b 08 08 9c c1 81 55 02 00 41 70 70 6c 65 2e 
74 78 74 00 0b c9 c8 2c 56 28 2d 4e 4d 51 e0 2d 
c9 57 48 4a 55 48 cc e3 75 2c 28 c8 49 55 88 8d 
56 48 cb cc 49 d5 e3 05 2b 01 22 de e2 92 cc 9c 
1c a0 02 05 0c 15 84 0d 01 00 d3 0c 65 8c 68 00
00 00 

Este é um arquivo gzip válido que contém um pequeno arquivo de texto "Apple.txt" com quebras de linha CR no estilo Mac. Observe que ele contém um 0d na penúltima linha.

Se você abri-lo no Notepad ++, será semelhante a isto:

‹œÁU Apple.txt ÉÈ,V(-NMQà-ÉWHJUHÌãu,(ÈIUˆVHËÌIÕã+"Þâ’Ìœ „
 ÓeŒh   

Substituir o CR por um LF e salvar resultará em um arquivo corrompido. Vá em frente, tente.

Para evitar isso é o futuro, você deve especificar filtros na caixa de diálogo "Localizar nos arquivos". Por exemplo, se sua pasta contiver arquivos .txt, .htm, .html, .rar e .avi e você quiser modificar apenas arquivos de texto e páginas HTML, insira *.txt *.htm *.html no campo "Filtros". Se isso não for prático por algum motivo, você precisa mover os arquivos que não devem ser alterados para fora da pasta na qual o Find in Files é iniciado.

Se você quiser modificar arquivos dentro de arquivos, você deve extraí-los primeiro e recompactá-los após a modificação.

    
por 16.06.2015 / 01:09
1

O Notepad ++ não possui o recurso "Excluir arquivos binários". Você precisa especificar no filtro de nome de arquivo em quais arquivos deseja que a substituição ocorra caso não queira que TODOS os arquivos sejam verificados.

Basear-se na detecção de arquivos binários não é uma boa idéia, pois é possível que arquivos de texto sejam confundidos como binários (e vice-versa).

    
por 19.06.2015 / 12:27