1

我正在使用ruby​​zip库来压缩文件。
但我遇到问题。
我尝试:

    Zip::ZipOutputStream.open('c:/sites/efiling2/test.zip') do |zos|
        zos.put_next_entry("test.rtf")
        zos.write IO.read('c:/sites/efiling2/test.rtf')
        zos.put_next_entry("test.jpg")
        zos.write IO.read('c:/sites/efiling2/test.jpg')
    end

但是 write 方法限制了原始文件的大小。例如,我的源文件test.jpg的大小为11913 字节,但在存档中有一个文件test.jpg的大小为 11551 字节。与 test.rtf 有相同的情况。

有什么建议么?

4

1 回答 1

1

我怀疑你的问题可能是IO.read()。我不太确定它是否正确处理二进制数据。

我会试试这个,看看它是否能解决问题:

File.open(filename, "rb") { |f| f.read }
于 2012-05-02T23:59:36.520 回答