Архивация файлов в папке

arthyrgrex

Client
Регистрация
12.05.2013
Сообщения
104
Благодарностей
31
Баллы
28
Ребята, подскажите пожалуйста C# код, с помощью которого можно заархивировать файлы в папке в archiv.zip

У меня что-то не получается:
Код:
return System.IO.Compression.ZipFile(project.Variables["files"].Value);
И если я правильно понимаю, в переменной "files" должен содержаться полный путь к файлам?

Заранее благодарен!
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
поищи по форуму, недавно такая тема была, только не знаю вышло там у человека что нить или нет
 

arthyrgrex

Client
Регистрация
12.05.2013
Сообщения
104
Благодарностей
31
Баллы
28
Я уже искал (архив\сжатие\архивация\запаковать\сжать) - ничего подобного не нашел
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113

arthyrgrex

Client
Регистрация
12.05.2013
Сообщения
104
Благодарностей
31
Баллы
28

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113
Если нужно заархивировать файлы в папке то вот такой код:
Код:
var path1 = project.Variables["Directory"].Value; // путь к папке с файлами
var path2 = project.Variables["Archive"].Value; //путь к файлу архива
System.IO.Compression.ZipFile.CreateFromDirectory(path1, path2);
 

arthyrgrex

Client
Регистрация
12.05.2013
Сообщения
104
Благодарностей
31
Баллы
28
Все таки сделал через бат файл:

- создаем zip.bat
- кладем его в папку с файлами, которые нужно заархивировать
- в .bat файле пишем:
Код:
"c:\Program Files\7-Zip\7z.exe" a "archiv.zip" -r "*.html"
где:
"c:\Program Files\7-Zip\7z.exe" - полный путь к архиватору
a "archiv.zip" - указываем название архива
-r "*.html" - указываем какие файлы брать (расширение). Если вам нужно взять просто все файлы, пишем так: -r "*", но тогда запакуется и бат файл.

В зенке батник запускаем через экшен "Запуск программы":
Снимок.PNG
Все отлично работает.
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113
А что с кодом не получилось? Там наверное нужно еще добавить файл System.IO.Compression.FileSystem в сборку из GAC (Свой код>Ссылки из GAC)
 

arthyrgrex

Client
Регистрация
12.05.2013
Сообщения
104
Благодарностей
31
Баллы
28
А что с кодом не получилось? Там наверное нужно еще добавить файл System.IO.Compression.FileSystem в сборку из GAC (Свой код>Ссылки из GAC)
Вот я как раз таки и запаролся на этом моменте - начал искать библиотеку в GAC, чтобы подключить её и не нашел.

Как она точно называется?
 
Последнее редактирование:

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113

arthyrgrex

Client
Регистрация
12.05.2013
Сообщения
104
Благодарностей
31
Баллы
28
моя версия зенки 5.8.0.1
все что у меня есть:
Снимок.PNG
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113
  • Спасибо
Реакции: arthyrgrex

Dexio

Client
Регистрация
09.05.2014
Сообщения
1 254
Благодарностей
220
Баллы
63
Кстати, есть вариант чтобы не разбираться с параметрами. Профиль по умолчанию в виниаре. И простое указание пути все само сделает и переименует и запакует
 

ZSharp

Client
Регистрация
29.09.2013
Сообщения
395
Благодарностей
126
Баллы
43
Все таки сделал через бат файл:

- создаем zip.bat
- кладем его в папку с файлами, которые нужно заархивировать
- в .bat файле пишем:
Код:
"c:\Program Files\7-Zip\7z.exe" a "archiv.zip" -r "*.html"
где:
"c:\Program Files\7-Zip\7z.exe" - полный путь к архиватору
a "archiv.zip" - указываем название архива
-r "*.html" - указываем какие файлы брать (расширение). Если вам нужно взять просто все файлы, пишем так: -r "*", но тогда запакуется и бат файл.

В зенке батник запускаем через экшен "Запуск программы":
Посмотреть вложение 9249
Все отлично работает.
Всё работает.
Но когда архивируешь несколько тысяч файлов зенка выходит по ошибке.
Ставил задержку до 300 секунд, всё равно ошибка.
Как сделать, чтобы следующее действие не выполнялось, до тех пор, пока зенка не дождётся ответа от архиватора?
hJXVFsd.jpg
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113

ZSharp

Client
Регистрация
29.09.2013
Сообщения
395
Благодарностей
126
Баллы
43

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113

Pioneer

Новичок
Регистрация
17.11.2019
Сообщения
13
Благодарностей
0
Баллы
1
Если нужно заархивировать файлы в папке то вот такой код:
Код:
var path1 = project.Variables["Directory"].Value; // путь к папке с файлами
var path2 = project.Variables["Archive"].Value; //путь к файлу архива
System.IO.Compression.ZipFile.CreateFromDirectory(path1, path2);
Код работает. Создаёт архив. все как надо но код завершаться ошибкой
Выполнение действия CSharp OwnCode. Процесс не может получить доступ к файлу , так как этот файл используется другим процессом.

как это победить ?
 

Pioneer

Новичок
Регистрация
17.11.2019
Сообщения
13
Благодарностей
0
Баллы
1

zenno.xxx

Client
Регистрация
05.10.2016
Сообщения
262
Благодарностей
248
Баллы
43
Код:
var path1 = project.Variables["Directory"].Value; // путь к папке с файлами
var path2 = project.Variables["Archive"].Value; //путь к файлу архива
System.IO.Compression.ZipFile.CreateFromDirectory(path1, path2);

Парни, все файлы из каталога успешно пакуются.
Но если в каталоге расположены еще папки, то их архивация не происходит.

Может кто подсказать как запаковать содержимое каталога с внутренними папками? ;-)
* только через 7-zip ?

UP: решил с помощью 7z.exe
 
Последнее редактирование:

sten30

Client
Регистрация
05.09.2017
Сообщения
253
Благодарностей
31
Баллы
28
Когда архиватор встроят в ZennoPoster?
 
  • Спасибо
Реакции: prostors

prostors

Client
Регистрация
16.12.2020
Сообщения
1 016
Благодарностей
33
Баллы
48

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)