Доброе Утро! Ребят есть две папки с ДБФ файлами. Как сравнить файлы, чтобы из первой папки удалялись файлы найденные во второй?????? У меня в голову пришло только...

```1c
    СравнениеФайлов = НайтиФайлы(Папка2,МаскаФайла,Ложь);
    СравнитьФайлы = НайтиФайлы(Папка1,МаскаФайла,Ложь);
    Для каждого Файл из СравнитьФайлы Цикл
    Если Файл = СравнениеФайлов Тогда
    Файл.Удалить();
    КонецЕсли;
    КонецЦикла;
```

НО ЭТО НЕ РАБОТАЕТ.... т.к. я думаю = СравнениеФайлов не прокатывает!
Помогите неопытному!!!!!!!!!!!!!! Заранее спасибо!
---
Получить все файлы в папке 1;
Получить все файлы в папке 2;
сравнить по наименованию файла (цикл в цикле), если есть одинаковые, то записать имя файла в массив для последующего удаления;
Удалить файлы по именам из массива;

```1c
    НайденныеФайлы1 = НайтиФайлы(ИмяКаталога1, "*.dbf");
    НайденныеФайлы2 = НайтиФайлы(ИмяКаталога2, "*.dbf");
    Для Каждого ф1 из НайденныеФайлы1 Цикл
    Для Каждого ф2 из НайденныеФайлы2 Цикл
    // Сравнение и т.д.
    КонецЦикла;
    КонецЦикла;
```
---
Получить все файлы в папке 1;
Получить все файлы в папке 2;
сравнить по наименованию файла (цикл в цикле), если есть одинаковые, то записать имя файла в массив для последующего удаления;
Удалить файлы по именам из массива;

```1c
    НайденныеФайлы1 = НайтиФайлы(ИмяКаталога1, "*.dbf");
    НайденныеФайлы2 = НайтиФайлы(ИмяКаталога2, "*.dbf");
    Для Каждого ф1 из НайденныеФайлы1 Цикл
    Для Каждого ф2 из НайденныеФайлы2 Цикл
    // Сравнение и т.д.
    КонецЦикла;
    КонецЦикла;
```
---
что то не удаляет...

```1c
    СравнениеФайлов = НайтиФайлы(РАЗНЕСЕНО,МаскаФайла,Ложь);
    СравнитьФайлы = НайтиФайлы(НЕРАЗНЕСЕНО,МаскаФайла,Ложь);
    Для каждого Файл1 из СравнитьФайлы Цикл
    для каждого Файл2 из СравнениеФайлов Цикл

    если Файл1.ПолноеИмя = Файл2.ПолноеИмя; тогда
    Файл1.Удалить;
    конецесли;
    КонецЦикла;
    КонецЦикла;
```
---
Да, свойство "Имя", а не "ПолноеИмя"
Файл1.Удалить;
Для файла нет такого метода "Удалить"
---
Вместо "Файл1.Удалить"
```1c
    УдалитьФайлы(Файл1.ПолноеИмя)
```
---
А вам надо содержимое файлов сравнивать или достаточно одинакового имени?
---
Достаточно имени.
---
(12) я короче подзавис)) файлы удаляет нормально...проблема в другом... у меня есть "папка3" в ней много "подпапок"(и в ней же находятся папка1 и папка2). внешняя обработка- обрабатывает все файлы в Папке3 и в подпапках...т.е. помимо нужных файлов она обрабатывает "Папка 2 " которую обрабатывать ненужно.... короче копец))) можно как нибудь указать чтобы обрабатывала все кроме папка1 и папка2...

```1c
    МаскаФайла = "*.dbf";
    НайденныеФайлы = НайтиФайлы(ПАПКА3,МаскаФайла,Истина);
    Для Каждого ФФ из НайденныеФайлы Цикл
    Если ФФ.ЭтоКаталог() Тогда
    Продолжить;
    КонецЕсли;
    КороткоеИмя = СокрЛП(Лев(ФФ.ИмяБезРасширения, 8))+".dbf";
    НашПолныйПутьФайла = КаталогВременныхФайлов() + КороткоеИмя;
    КопироватьФайл(ФФ.ПолноеИмя,НашПолныйПутьФайла);
    ФайлДБФ = Новый XBase;
    ФайлДБФ.ОткрытьФайл(НашПолныйПутьФайла,,Истина);
    ФайлДБФ.Первая();
    Реквизит1.Очистить();
    Пока НЕ ФайлДБФ.ВКонце() Цикл
    Если Лев(ФайлДБФ.Account,3) = УчастокКод тогда
    НоваяСтрока = Реквизит1.Добавить();
    ........... ........
    КонецЕсли;
    ФайлДБФ.Следующая();
    КонецЦикла;
    ФайлДБФ.ЗакрытьФайл();
    НовыйДБФ = Новый XBase;
    ............ .............

    Сумма = Реквизит1.Итог("Sum");
    Количество = Реквизит1.Количество();

    Каталог = ПАПКА1 + "\" + КороткоеИмя;
    НовыйДБФ.СоздатьФайл(Каталог,);
    НовыйДБФ.Записать();

    Для Каждого СтрТаб Из Реквизит1 Цикл
    НовыйДБФ.Добавить();
    ............ ..........

    Конеццикла;
    НовыйДБФ.ЗакрытьФайл();
    ПереместитьФайл(Каталог,ПАПКА1 + "\" + ФФ.ИмяБезРасширения + "Sum"+ Сумма + "k" + Количество + ".dbf");
    КонецЦикла;
```

И подскажите пожалуйста как удалить из КаталогВременныхФайлов() файлы, а то почему то не удаляются))
---
У метода НайтиФайлы есть 3 параметр.

НайтиФайлы (FindFiles)
Синтаксис:

НайтиФайлы(<Путь>, <Маска>, <ИскатьВПодкаталогах>)

Если его поставить Ложь, то будет искать только в текущем каталоге.
Далее можно в цикле проверять, если текущий файл это каталог, то запускать еще раз поиск, если в этом каталоге нужно искать.
---
можно как нибудь указать чтобы обрабатывала все кроме папка1 и папка2.
При обходе в цикла файлов анализируйте свойство "ПолноеИмя" - это полный путь к файлу. Будет в виде "С:\Папка3\Папка1\Файл1". Попробуйте функции для работы со строками, например СтрНайти(). И если нашли, что в полном имени файла содержится каталог, который вам обрабатывать не нужно, то переходите к обработке следующего файла.

```1c
    Если СтрНайти(ФФ.ПолноеИмя, "\папка1\") > 0 Тогда
    Продолжить;
    КонецЕсли;
```
---
НайтиФайлы("Каталог", "Файл.имя") вот так получилось
---
И подскажите пожалуйста как удалить из КаталогВременныхФайлов() файлы, а то почему то не удаляются))
Попробуйте:

```1c
    УдалитьФайлы(КаталогВременныхФайлов(), "*.dbf");
```

только будьте аккуратны с удалением файлов!
---
Вы сравниваете файл с массивом. Что должно прокатывать?
Надо каждый файл из первой папки сравнить с каждым файлов во 2 папке.
Если совпадут - значит одинаковые.
Для сравнения файлов можно использовать объект СравнениеФайлов
---
Если Файл = СравнениеФайлов Тогда
Файл.Удалить();
КонецЕсли;

Надо писать:

```1c
    Если Файл.ПолноеИмя = СравнениеФайлов.ПолноеИмя Тогда
```

т.к. Файл - это переменная с типом "Файл", а вам надо сравнить имена файлов
---
т.к. Файл - это переменная с типом "Файл"
а СравнениеФайлов это массив...

Особенно полное имя хорошо сравнивать))
---
Да, опечатался, там должен быть еще обход элементов массива. Хотел сказать, что надо обращаться к свойству "ПолноеИмя"
---
обращаться к свойству "ПолноеИмя"
В полном имени - путь к директории.
В разных папках файлы...
---
Да, совершенно точно, использовать свойство "Имя"