我正在用Ruby编写一个程序,它将在目录中的文本文件中搜索字符串 - 类似于Grep.
我不希望它尝试搜索二进制文件,但我无法在Ruby中找到确定文件是二进制文件还是文本的方法.
该程序需要在Windows和Linux上运行.
如果有人能指出我正确的方向,这将是伟大的.
谢谢,
Xanthalas
joh*_*nes 13
libmagic是一个检测文件类型的库.对于这个解决方案,我假设,所有以mimetype开头的text/代表文本文件.Eveything else是一个二进制文件.这个假设对于所有mime类型都不正确(例如,application/x-latex,application/json),但是libmagic检测这些是text/plain.
require "filemagic"
def binary?(filename)
begin
fm= FileMagic.new(FileMagic::MAGIC_MIME)
!(fm.file(filename)=~ /^text\//)
ensure
fm.close
end
end
Run Code Online (Sandbox Code Playgroud)
小智 5
gem install ptools
require 'ptools'
File.binary?(file)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4581 次 |
| 最近记录: |