如何检查字符串是否是文件内容或路径?

时间:2018-09-05 14:10:36

标签: ruby-on-rails ruby

我有一个接收字符串的方法。它可以接受文件路径或文件内容。

当我通过路径时,它会读取并处理它,一切都很好。

当我传递内容时,当检查文件路径是否存在时,它以string contains null byte崩溃

这是代码的一部分,用于检查传递的参数是否为文件:

contents = File.exists?(param) ? File.read(param) : param

我的问题是:是否有另一种方法来检查param是否是二进制内容而不是File.exists?的路径

1 个答案:

答案 0 :(得分:1)

您可能会检查字符串是否预先包含空字节:

contents = 
  case input
  when /\u0000/ then param
  when File.exists?(param) then File.read(param)
  else param
  end

或者,甚至更容易地,除非File#read成功了,否则请回到param:

contents = File.read(param) rescue param