/ / Vytvárajte zipsové súbory v Ruby spustením unixových príkazov, bez drahokamov - ruby, linux, ruby-on-rails-3, príkazový riadok, zip

Vytvorte súbory zip v rubíne spustením príkazov UNIX, bez drahokamov - ruby, linux, ruby-on-rail-3, príkazový riadok, zip

Skript funguje úplne v poriadku. Jediným problémom, ktorému čelím, je cesta. Po vytvorení súboru zip. Ak jeho rozbalím. má úplnú cestu k súboru ako: -

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

Len to chcem stihnúť

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: - Chcem vytvárať súbory zip. Žiadny decht, gzip atď

odpovede:

2 pre odpoveď č. 1

Tu je riešenie: -

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

Normálne by to malo za následok zip obsahujúci tri „podadresáre“:

a/
+ file1

b/
+ file2

c/
+ file3

S -j získate:

./
+ file1
+ file2
+ file3

1 pre odpoveď č. 2

Ku každému názvu súboru dodávate celú cestu k adresáru. Pretože ste sa už v danom adresári zmenili, nemusíte to robiť.

Inými slovami, ak zmeníte svoje filenames premenná na:

filenames = "*"

Malo by to fungovať podľa vašich predstáv.