nodejs 怎么判断一个文件是文件文件还是二进制文件?
nodejs 怎么判断一个文件是文件文件还是二进制文件?
11 回复
@suxiaoxin 原理是,不管是哪种编码的文本文件,解构成单个的char看,必然是ascii字符组成的,数值肯定是0-127.而二进制文件一定会有超过127的字节存在.基于这种理论,你读取某个文件的开始一段,逐个判断是否有字符超过127,如果有,那么肯定是非文本文件了.当然全部扫描是极端的做法,消耗太大,一般就只扫描一段,至于linux file命令的判断,他做的更多,比如在判断可执行的二进制文件时,他通过扫描特定系统的ABI来区分是你某个平台下的可执行文件.