我想创建一个给定目录中所有html文件的zip文件。zip将作为附件通过电子邮件与目录中的其他文件一起发送。到目前为止,我尝试过的所有电子邮件客户端都无法读取电子邮件(如果任何附件是HTML文件,如果我是从Pony发送的)。所以我想我会拉上拉链。
有没有什么方法可以快速压缩html文件,但实际上只在内存中压缩,而不在windows平台上使用任何临时文件?最好不要使用任何外部程序?
如果我理解正确,两种方法描述如下:
http://info.michael-simons.eu/2008/01/21/using-rubyzip-to-create-zip-files-on-the-fly/
http://rubyzip.sourceforge.net/classes/Zip/ZipFile.html
正在使用某种临时文件。
最佳答案
起初我以为你可以用stringio对象来写,但是看起来zipoutputstream类坚持要打开一个临时文件。
如果您不介意调用外部程序,可以告诉标准linux zip使用“-”而不是文件名将otuput发送到stdout,而不是文件。所以只需将输出收集到一个变量中,然后对它执行任何您喜欢的操作。
zipdata = %x(zip -q - *.html)
我不认为这会比仅仅使用一个临时文件更有效,但是你必须测量它才能确定。
关于ruby - 如何仅在ruby的内存中创建zip文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11532502/