是否有可能阻止 Notepad++ 搜索二进制文件内部?

是否有可能阻止 Notepad++ 搜索二进制文件内部?

我刚刚偶然发现 Notepad++ 中的“在文件中查找”功能会搜索 RAR 档案中的文件。运行几次“查找和替换”查询后,我工作文件夹中的所有 RAR 文件现在都已损坏。

我确实认为在二进制文件中搜索应该是一个可选功能,但目前我真的想退出它。有人知道正确的设置吗?

答案1

Notepad++ 不会在存档文件中搜索和替换。您的存档被损坏是因为您对 RAR 文件本身执行了搜索和替换,而不是对其中包含的文件执行了搜索和替换。

假设您想将文件夹中的所有文本文件从 Mac 转换为 Unix。为此,您必须将所有 CR ( 0x0D) 字符替换为 LF ( 0x0A)。我们还假设您的文件夹包含以下名为“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 

这是一个有效的 gzip 存档,其中包含一个小文本文件“Apple.txt”,其中有 Mac 风格的 CR 换行符。请注意,它0d在倒数第二行包含。

如果你在 Notepad++ 中打开它,它看起来类似于:

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

将 CR 替换为 LF 并保存将导致文件损坏。来吧,试试看。

为了避免将来出现这种情况,您应该在“在文件中查找”对话框中指定过滤器。例如,如果您的文件夹包含 .txt、.htm、.html、.rar 和 .avi 文件,并且您只想修改文本文件和 HTML 页面,请输入*.txt *.htm *.html“过滤器”字段。如果出于某种原因这不切实际,您需要将不应更改的文件移出“在文件中查找”启动的文件夹。

如果要修改档案库里的文件,必须先将其解压,修改后再重新压缩。

答案2

Notepad++ 没有“排除二进制文件”功能。如果您不想检查所有文件,则需要在文件名过滤器中指定要替换的文件。

无论如何,依赖二进制文件检测并不是一个好主意,因为文本文件可能会被混淆为二进制文件(反之亦然)。

相关内容