2009-10-16 71 views
0

路上我试图用RubyZip打包了一些文件。目前,我有愉快地呼啸而过的特定目录和子目录的方法。RubyZip - 从不同的目录中的文件有压缩

def zip_directory(zipfile) 
    Dir["#{@directory_to_zip}/**/**"].reject{|f| reject_file(f)}.each do |file_path| 
     file_name = file_path.sub(@directory_to_zip+'/',''); 
     zipfile.add(file_name, file_path) 
    end 
end 

但是,我想从一个完全不同的文件夹中包含一个文件。我有一个下面的方法来解决这个问题:

def zip_additional(zipfile) 
    additional_files.reject{|f| reject_file(f)}.each do |file_path| 
     file_name = file_path.split('\\').last 
     zipfile.add(file_name, file_path) 
    end 
end 

虽然添加的文件时,它还将复制的目录结构,而不是将所述文件在文件夹的根目录。这真的很烦人,并且使其更难处理。

我该如何解决这个问题?

感谢

回答

1

有设置包括(或排除)对于ZIP库的完整路径,请检查设置

+0

我似乎无法看到任何东西的RDoc - http://rubyzip.sourceforge.net/ – 2009-10-16 12:07:22

+0

我不知道有关rubyzip,但我认为这就是问题所在。标准的zip库有此设置(包括完整路径),也许这篇文章将帮上什么忙?: http://info.michael-simons.eu/2008/01/21/using-rubyzip-to-create-zip -files上即时/ 有注:关于如何创建路径的代码如下 – dusoft 2009-10-16 12:37:51

0

原来这是因为文件名曾在拉路径。我的分割不工作,因为路径使用/而不是a。从路径中删除文件名,它只是工作。