1C шаблоны и готовые решения

Май 12, 2016

Работа с zip архивом

Filed under: — admin @ 9:51 дп
// Возвращает массив xml файлов извлеченных из zip архива
//
// Параметры:
//  ДвоичныеДанные - zip архив в виде двоичных данных
Функция РаспаковатьАрхивИПолучитьМассивИзвлеченныхФайлов(ДвоичныеДанные)
	
	ИмяФайлаАрхива = ПолучитьИмяВременногоФайла("zip");
	АдресХранилища = ПоместитьВоВременноеХранилище(ДвоичныеДанные, Новый УникальныйИдентификатор()); 
	Данные = ПолучитьИзВременногоХранилища(АдресХранилища);
	Данные.Записать(ИмяФайлаАрхива);
	
	// открытие и распаковка архива
    Архив = Новый ЧтениеZipФайла(ИмяФайлаАрхива);
	МассивИзвлеченныхФайлов = Новый Массив();
	ВременныйКаталог = КаталогВременныхФайлов();
	
	Для каждого Элемент из Архив.Элементы Цикл
    	Архив.Извлечь(Элемент, ВременныйКаталог,РежимВосстановленияПутейФайловZIP.НеВосстанавливать);
		ПолныйПутьКИзвлеченномуФайлу = ВременныйКаталог + Элемент.Имя;
		//Проверяем существует ли файл
		Если НайтиФайлы(ПолныйПутьКИзвлеченномуФайлу).Количество() > 0 Тогда
			МассивИзвлеченныхФайлов.Добавить(ПолныйПутьКИзвлеченномуФайлу);
		КонецЕсли;		
	КонецЦикла;
	
	УдалитьФайлы(ИмяФайлаАрхива);
	
	Возврат МассивИзвлеченныхФайлов;
	
КонецФункции

Powered by WordPress

Яндекс.Метрика nikol_dn@list.ru