我正在尝试使用RubyGemCurb构建一个文件下载器。(查看ThisQuestion。)我正在尝试下载一个zip文件,然后使用我正在尝试实际制作文件的类文件,以便我可以在Finder中双击它(我在OSX上)。我将如何将这个“curl”的主体转换为zip文件。require'rubygems'require'curb'classDownloaddefstartcurl=Curl::Easy.new('http://wordpress.org/latest.zip')curl.performcurl.on_body{|d|f=File.new('test.zip','w'){|f|f.w
我有以下ruby代码:require'HTTPClient'require'rubygems'require'zip'defself.unzip(data,dest_dir)::Zip::File.open_buffer(data)do|fzip|fzip.eachdo|entry|path=File.join(dest_dir,entry.name)puts"here"FileUtils::mkdir_p(File.dirname(path))fzip.extract(entry,path)unlessFile.exist?(path)#fzip.closeendendenddefs
我想在rails中创建一个临时的.zip。为了创建zip文件,我使用了rubyzipgem。目前我正在这样做:zfname=Tempfile.new(['somename','.zip'],Rails.root.to_s+'/tmp/')Zip::ZipFile.open(zfname.path,Zip::ZipFile::CREATE)do|zipfile|zipfile.add(file,basepath+file)end这会产生以下错误:Zip::ZipError:Zipendofcentraldirectorysignaturenotfound是否可以将Tempfile用于zi
我正在尝试从WordPress.org下载最新的.zip使用网络::HTTP。这是我到目前为止所得到的:Net::HTTP.start("wordpress.org/"){|http|resp=http.get("latest.zip")open("a.zip","wb"){|file|file.write(resp.body)}puts"WordPressdownloaded"}但这只会给我一个4KB的404错误HTML页面(如果我将文件更改为a.txt)。我认为这与URL可能以某种方式重定向有关,但我不知道我在做什么。我是Ruby的新手。 最佳答案
下面的散列是否有更简单的转置?我有一个可行的解决方案,但转置方法很难阅读。用例是作业(j1、j2、j3等)及其发生日期(d1、d2、d3等)的散列。要求是对按日期然后是工作分组的事件(e1、e2、e3等)进行哈希处理,并将它们转换为按工作然后是日期分组的事件.我试验了#zip方法,但这需要在j1:d1处注入(inject)nil,然后将它们从结果中剥离出来。我也很难找到#zip的示例用法带有block参数。我明白#zipwithablockalwaysreturnsnil但结果我无法理解您将如何实际使用它。require'rspec'require'pry'#|d1|d2|d3|#--
在这里,我使用rubyzip和nokogiri修改.docx文件。RubyZip->Unzip.docxfileNokogiri->Parseandchangeincontentofthebodyofword/document.xml当我在下面编写示例代码时,代码修改了文件,但其他文件受到了干扰。换句话说,更新的文件没有打开显示错误字处理器崩溃。我该如何解决这个问题?require'zip/zipfilesystem'require'nokogiri'zip=Zip::ZipFile.open("SecurityForms.docx")doc=zip.find_entry("wor
我有一个TempFile对象,它是一个zip文件,我希望按如下方式读取它:Zip::ZipFile.open_buffer(tempfile)do|zipfile|...end但是,当我这样做时,出现以下错误:Zip::ZipFile.open_bufferexpectsanargumentofclassStringorIO.Found:Tempfile我也试过Zip::ZipFile.open(tempfile.path)do|zipfile|...end但是返回can'tdupNilClass如何处理临时zip文件? 最佳答案
我有一个模型,其中一个附件使用ActiveStorage:classProofreadDocument我正在执行一个将文件附加到proofread_document的rake任务。这些文件被压缩成一个zip存档。我知道我可以通过阅读ActiveStorage文档附加如下文件:@proofread_document.file.attach(io:File.open('/path/to/file'),filename:'file.pdf')我的rake任务中有以下内容:Zip::File.open(args.path_to_directory)do|zipfile|zipfile.each
我正在使用此处描述的技术创建一个zip文件:http://info.michael-simons.eu/2008/01/21/using-rubyzip-to-create-zip-files-on-the-fly/客户要求我在此zip文件中包含子目录。我搜索了ZipOutputStream文档,但我看不到包含目录的方法。有没有办法用ZipOutputStream做到这一点?我应该使用与ZipOutputStream不同的类吗?此外,我正在压缩的文件不在本地文件系统中,而是存储在云服务中。 最佳答案 想出了答案,我想我会把它放在这里
我正在努力让rubyzip将目录附加到zipoutputstream。(我想要输出流,所以我可以从RailsController发送它)。我的代码遵循这个例子:http://info.michael-simons.eu/2008/01/21/using-rubyzip-to-create-zip-files-on-the-fly/当修改为在要添加的文件列表中包含目录时,出现以下错误:如有任何帮助,我们将不胜感激。更新在尝试了一些解决方案后,我在zipruby上取得了最大的成功,它有一个干净的api和很好的例子:http://zipruby.rubyforge.org/.