使用system()在Ruby中压缩文件

时间:2015-01-22 08:43:13

标签: ruby-on-rails ruby zip

我尝试使用system()方法压缩文件,完全如下:

system("zip /directory/filename.xml > /directory/filename.xml.zip")

原始文件存在,我对它有100%的肯定,但system()方法返回false。你在这看到什么错误?

更新:

到目前为止,我已经尝试了

system("zip -r #{zip_output_file_path} #{file_path}")

但它给了我

zip warning: missing end signature--probably not a zip file (did you
    zip warning: remember to use binary mode when you transferred it?)
    zip warning: (if you are trying to read a damaged archive try -F)

zip error: Zip file structure invalid (zip_output_file_path)

1 个答案:

答案 0 :(得分:0)

根据zip手册-r递归地传播目录结构。

您需要指向目录:

system("zip -r /directory/filename.xml.zip /directory/")

或直接访问该文件,但没有-r选项:

system("zip /directory/filename.xml.zip /directory/filename.xml")