| 04 июля 2009, 06:37 | |
|---|---|
moff Живет: не указан Сообщений: 7 Рейтинг: 0.0 Рег: 02 мая 2009 |
Папку в архив.. как?! |
| Если кто знает, то подскажите, пожалуйста.. На сервере есть папка, допустим /folder/ В этой папке много файлов.. Необходимо эту папку запаковать в архив средствами RoR.. Может кто знает как такое возможно сделать?! Может gem какой-то для этого есть.. Заранее спасибо.. |
|
| rar, zip |
| 04 июля 2009, 06:59 | |
|---|---|
Илья Зайко Живет: Moscow,RUS Сообщений: 425 Рейтинг: 139.0 Рег: 27 окт. 2008 Его блог |
RE: Папку в архив.. как?! 5.0 из 1 гол. |
moff
http://rubyzip.sourceforge.net/
The following example opens zip archive my.zip (creating it if it doesn’t exist) and adds an entry first.txt and a directory entry a_dir to it. require 'zip/zip' Zip::ZipFile.open("my.zip", Zip::ZipFile::CREATE) { |zipfile| zipfile.get_output_stream("first.txt") { |f| f.puts "Hello from ZipFile" } zipfile.mkdir("a_dir") } The next example reopens my.zip writes the contents of first.txt to standard out and deletes the entry from the archive. require 'zip/zip' Zip::ZipFile.open("my.zip", Zip::ZipFile::CREATE) { |zipfile| puts zipfile.read("first.txt") zipfile.remove("first.txt") } ------------ Илья aka Зайко (aka Killich)
Тот самый учитель информатики >:0) |
|
| 04 июля 2009, 07:43 | |
|---|---|
moff Живет: не указан Сообщений: 7 Рейтинг: 0.0 Рег: 02 мая 2009 |
RE: RE: Папку в архив.. как?! |
| Илья Зайко
Спасибо, Илья.. ) Как раз то что нужно.. ^_^ Только вопрос: когда скрипт заканчивает работу - в папке рядом с архивом находятся еще какие-то файлы.. Очень странные.. Частично состоящие из названий файлов что я в архив упрятал + дата + что-то еще.. А внутри файлов - информация из заархивированных файлов.. Это можно как-то убрать?! |
|
| 04 июля 2009, 07:51 | |
|---|---|
Илья Зайко Живет: Moscow,RUS Сообщений: 425 Рейтинг: 139.0 Рег: 27 окт. 2008 Его блог |
RE: Папку в архив.. как?! |
| moff
=) если б я хоть раз это использовал сам, я б обязательно ответил =) ------------ Илья aka Зайко (aka Killich)
Тот самый учитель информатики >:0) |
|
| 04 июля 2009, 07:52 | |
|---|---|
moff Живет: не указан Сообщений: 7 Рейтинг: 0.0 Рег: 02 мая 2009 |
RE: RE: Папку в архив.. как?! |
| Илья Зайко
Ну ничего.. ) И на этом спасибо.. Удачи) |
|
| 04 июля 2009, 12:20 | |
|---|---|
Ruslan Voloshin Живет: Odessa,UKR Сообщений: 2156 Рейтинг: 532.0 Рег: 13 марта 2007 Его блог |
RE: RE: RE: Папку в архив.. как?! 5.0 из 1 гол. |
moff
Вот у меня реализован еще такой вариант
def download_client client_type = params[:id] if client_type.eql?('php') file_name = "tmp/ziped_clients/#{current_user.uid}.zip" FileUtils.remove_file(file_name, true) =begin Версия с созданием файла пхп архива. =end file = Zip::ZipFile.open(file_name, Zip::ZipFile::CREATE) { |zipfile| zipfile.mkdir(current_user.uid.to_s) zipfile.add("#{current_user.uid}/client.php", "#{RAILS_ROOT}/crawler/client.php") } =begin Версия с созданием пхп архива в через прямую запись в архив. =end # Zip::ZipOutputStream::open("my.zip"){ |io| # io.put_next_entry("#{current_user.uid}/client.php") # File.open("#{RAILS_ROOT}/crawler/client.php"){|f| # f.each{|line| io.write line}} # io # } send_file file_name, :size => file.size, :filename => "#{current_user.uid}.zip" else render :text => 'Unknown client format!!!' end return ------------ Операции с WM | SEO консультации |
|
| zip, ZipOutputStream, ZipFile |
| 04 июля 2009, 19:41 | |
|---|---|
Denis Yakunkchikov Живет: Togliatti Сообщений: 7 Рейтинг: 5.0 Рег: 20 дек. 2008 |
RE: Папку в архив.. как?! |
| moff Можно еще через ruby tar (видел где то в сети) а дальше через Zlib в tar.gz Про Zlib есть в Programming Ruby если вы забыли | |
| 14 июля 2009, 07:17 | |
|---|---|
moff Живет: не указан Сообщений: 7 Рейтинг: 0.0 Рег: 02 мая 2009 |
RE: RE: RE: RE: Папку в архив.. как?! |
| Ruslan Voloshin Спасибо.. ) Этот вариант очень помог мне сделать некоторые части что мне нужно.. Большое спасибо) | |