在File.read(错误:: EINVAL) - 无效参数:红宝石:'读'(rub

2019-09-16 13:13发布

我做一个简单的脚本来检查所有文件的CRC ...

require "zlib"
exit if Object.const_defined?(:Ocra)

files = Dir.glob("*")

File.open('dir.txt', 'a+') do |file|  
 file.puts files
end

File.read('dir.txt').each_line { |line|
    file = File.read(line) ; nil
    file_crc = Zlib.crc32(file,0).to_s(16)
    puts line, file_crc
}

的问题是在该行File.read('dir.txt').each_line { |line| 我得到这个错误:

test.rb:13:in `read': Invalid argument - 1.exe (Errno::EINVAL)
        from C:/Users/Administrador/Desktop/1.rb:13:in `block in <main>'
        from C:/Users/Administrador/Desktop/1.rb:12:in `each_line'
        from C:/Users/Administrador/Desktop/1.rb:12:in `<main>'

PD: 1.exe是在“DIR.TXT”中列出的文件。

Answer 1:

你检查该行不包含额外字符? p line

IIRC line将包含换行符,使用line.chomp



文章来源: ruby: `read': Invalid argument -(Errno::EINVAL) at File.read