gpt4 book ai didi

Ruby:如何确定正在读取的文件是二进制文件还是文本文件

转载 作者:数据小太阳 更新时间:2023-10-29 06:51:54 24 4
gpt4 key购买 nike

我正在用 Ruby 编写一个程序,它将在目录中的文本文件中搜索字符串 - 类似于 Grep。

我不希望它尝试在二进制文件中搜索,但我无法在 Ruby 中找到确定文件是二进制文件还是文本文件的方法。

该程序需要同时在 Windows 和 Linux 上运行。

如果有人能指出我正确的方向,那就太好了。

谢谢,

黄原素

最佳答案

libmagic 是一个检测文件类型的库。对于这个解决方案,我假设所有以 text/ 开头的 mimetype 都代表文本文件。其他的都是二进制文件。这个假设并不适用于所有 mime 类型(例如 application/x-latex、application/json),但 libmagic 将这些检测为文本/纯文本。

require "filemagic"

def binary?(filename)
begin
fm= FileMagic.new(FileMagic::MAGIC_MIME)
!(fm.file(filename)=~ /^text\//)
ensure
fm.close
end
end

关于Ruby:如何确定正在读取的文件是二进制文件还是文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2355866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com