簡體   English   中英

通過運行unix命令在ruby中創建zip文件,請不要使用gem

[英]Create zip files in ruby by running unix commands, no gems please

該腳本運行正常。 我面臨的唯一問題是道路。 創建zip文件后。 如果我解壓縮它。 其具有完整的文件路徑,例如:

/name_the_file/Users/user_name/projects/project_name/public/system/files/10/original/*

我只想做到

name_of_the_file/*

 desc "Create Zip file"
  task :create_zip => :environment do
  directory_path = "#{RAILS_ROOT}/public/system/files/10/original"
  bundle_filename="#{directory_path}/"+ "name_of_file.zip"
  filenames = "#{directory_path}/*" 
  %x{ cd #{directory_path}}
  %x{  zip -r  #{bundle_filename}  #{filenames}}
end

PS:-我想創建zip文件。 沒有焦油,gzip等

解決方法如下:-

  %x{  zip -r -j  #{bundle_filename}  #{filenames}}

通常,這將導致包含三個“子目錄”的zip文件:

a/
+ file1

b/
+ file2

c/
+ file3

使用-j,您將獲得:

./
+ file1
+ file2
+ file3

您將為每個文件名提供整個目錄路徑。 由於您已經更改到該目錄,因此不需要這樣做。

換句話說,如果將filenames變量更改為:

filenames = "*"

它應該按您的預期工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM