Skip to content

Commit 100e76f

Browse files
committed
Новые методы:
- функция Файлы - функция УдалитьНакопленныеВременныеФайлы(Знач ВременныеФайлыДо) - процедура СкопироватьКоллекцию(Массив, Приемник)
1 parent 6cd2a43 commit 100e76f

File tree

1 file changed

+64
-1
lines changed

1 file changed

+64
-1
lines changed

ВременныеФайлы.os

Lines changed: 64 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,71 @@
9393

9494
КонецФункции
9595

96+
// Массив накопленных путей временных файлов
97+
//
98+
// Возвращаемое значение:
99+
// Массив - <описание возвращаемого значения>
100+
//
101+
Функция Файлы() Экспорт
102+
Результат = Новый Массив;
103+
Для каждого Путь Из мВременныеФайлы Цикл
104+
Результат.Добавить(Путь);
105+
КонецЦикла;
106+
Возврат Результат;
107+
КонецФункции
108+
109+
// Удалить все накопленные временные файлы, которые были добавлены после фиксации набора временных файлов.
110+
// Удобно использовать для быстрой очистки на очередной итерации
111+
// Предварительно нужно зафиксировать текущий набор временных файлов через Файлы()
112+
// Алгоритм:
113+
// ВременныеФайлыДо = ВременныеФайлы.Файлы();
114+
// Попытка
115+
// // основной код
116+
// Исключение
117+
// // обработка ошибок
118+
// ВременныеФайлы.УдалитьНакопленныеВременныеФайлы(ВременныеФайлыДо);
119+
// ВызватьИсключение;
120+
// КонецПопытки;
121+
// ВременныеФайлы.УдалитьНакопленныеВременныеФайлы(ВременныеФайлыДо);
122+
//
123+
// Параметры:
124+
// ВременныеФайлыДо - Массив - набор ранее полученных временных файлов через Файлы()
125+
//
126+
Процедура УдалитьНакопленныеВременныеФайлы(Знач ВременныеФайлыДо) Экспорт
127+
ВременныеФайлыПосле = Файлы();
128+
129+
ОтборФайлов = Новый Соответствие;
130+
СкопироватьКоллекцию(ВременныеФайлыДо, ОтборФайлов);
131+
132+
КрайнийИндекс = ВременныеФайлыПосле.Количество()-1;
133+
Для Сч = 0 По КрайнийИндекс Цикл
134+
135+
Индекс = КрайнийИндекс-Сч;
136+
ИмяВременногоФайла = ВременныеФайлыПосле[Индекс];
137+
Если ОтборФайлов.Получить(ИмяВременногоФайла) = Неопределено
138+
И БезопасноУдалитьФайл(ИмяВременногоФайла) Тогда
139+
ВременныеФайлыПосле.Удалить(Индекс);
140+
КонецЕсли;
141+
142+
КонецЦикла;
143+
144+
КонецПроцедуры
145+
146+
// Скопировать одну простую коллекцию (Массив) в другую (Структура, Соответствие)
147+
// значение из источника становится и ключем, и значение приемника
148+
//
149+
// Параметры:
150+
// Массив - Массив - <описание параметра>
151+
// Приемник - Структура, Соответствие - <описание параметра>
152+
//
153+
Процедура СкопироватьКоллекцию(Массив, Приемник) Экспорт
154+
Для каждого Значение Из Массив Цикл
155+
Приемник.Вставить(Значение, Значение);
156+
КонецЦикла;
157+
КонецПроцедуры
158+
96159
СистемнаяИнформация = Новый СистемнаяИнформация;
97160
ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0;
98161

99162
мВременныеФайлы = Новый Массив;
100-
Лог = Логирование.ПолучитьЛог("oscript.app.tempfiles");
163+
Лог = Логирование.ПолучитьЛог("oscript.app.tempfiles");

0 commit comments

Comments
 (0)