Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как проверить существование каталога на FTP сервере
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > База знаний > Наши статьи > 1С Предприятие 8
Vofka
В типовой УТ есть полезная функция:

// функция проверяет наличие катаога на FTP сервере
Функция ПроверитьНаличиеКаталогаНаFTPСервере(Соединение, Знач ИмяКаталогаСервера,
    ДанныеПротокола = "", Знач ВывестиИнформациюВОкноСообщений = Истина,  
    СтруктураОбменаДанными = Неопределено)
    
    Если ПустаяСтрока(ИмяКаталогаСервера) Тогда
        Возврат Истина;
    КонецЕсли;
    
    //надо сначала проверить что сам каталог доступа есть
    Попытка
        
        МассивНайденныхКаталогов = Соединение.НайтиФайлы(ИмяКаталогаСервера, "");
        
    Исключение
        
        // ошибка при подключении к ftp
        СообщитьПростуюИнформацию("Ошибка при соединении с FTP : " + ИмяКаталогаСервера + " ! "
+ ОписаниеОшибки(),   ДанныеПротокола, ВывестиИнформациюВОкноСообщений, СтруктураОбменаДанными);
        Возврат Ложь;
        
    КонецПопытки;
    
    Для Каждого НайденныйКаталог Из МассивНайденныхКаталогов Цикл
        
        // если не каталог - то дальше ищем
        Если НЕ НайденныйКаталог.ЭтоКаталог() Тогда
            Продолжить;
        КонецЕсли;
        
        // большие и маленькие буквы считаются различными
        Если НайденныйКаталог.ПолноеИмя + "/" <> ИмяКаталогаСервера Тогда
            Продолжить;
        КонецЕсли;
        
        Возврат Истина;
        
    КонецЦикла;
    
    // если не найден каталог для обмена
    // я думаю тут понятно, что можно просто сделать Сообщить("Что-то" + ИмяКаталогаСервера);
    СообщитьПростуюИнформацию("Не найден FTP каталог обмена информацией: " + ИмяКаталогаСервера,  
        ДанныеПротокола, ВывестиИнформациюВОкноСообщений, СтруктураОбменаДанными);
        
    Возврат Ложь;
    
КонецФункции


Конец 32541510.gif
Batchir
Пример более универсальной функции на основании первого поста

// ПРИМЕР ПЕРЕДАВАЕМЫХ ПАРАМЕТРОВ
// ИмяКаталогаСервера = "/test_dir/"
// ИмяFTPСервера = "my-site.org.ua"
// ПортFTPСоединения = 21
// ПользовательFTPСоединения = "login"
// ПарольFTPСоединения = "pass"
// ПассивноеFTPСоединение = true
//
Функция ПроверитьНаличиеКаталогаНаFTPСервере(ИмяКаталогаСервера, ИмяFTPСервера, ПортFTPСоединения,
    ПользовательFTPСоединения, ПарольFTPСоединения, ПассивноеFTPСоединение)
    
    #Если Клиент Тогда
        Состояние("Выполняется подключение к FTP: " + ИмяFTPСервера);
    #КонецЕсли
    Попытка
        Соединение = Новый FTPСоединение(ИмяFTPСервера,
                                        ПортFTPСоединения,
                                        ПользовательFTPСоединения,
                                        ПарольFTPСоединения,
                                        ,
                                        ПассивноеFTPСоединение);                        
    Исключение
        // ошибка при подключении к ftp
        Сообщить("Ошибка при подключении к FTP : " + ИмяFTPСервера + " ! " + ОписаниеОшибки());
        Возврат Ложь;
    КонецПопытки;
    
    // соединение установили
    //надо сначала проверить что сам каталог доступа есть
    Попытка
        МассивНайденныхКаталогов = Соединение.НайтиФайлы(ИмяКаталогаСервера, "");
    Исключение
        // ошибка при подключении к ftp
        Сообщить("Ошибка при соединении с FTP : " + ИмяКаталогаСервера + " ! " + ОписаниеОшибки());
        Возврат Ложь;
    КонецПопытки;
    
    Для Каждого НайденныйКаталог Из МассивНайденныхКаталогов Цикл
        // если не каталог - то дальше ищем
        Если НЕ НайденныйКаталог.ЭтоКаталог() Тогда
            Продолжить;
        КонецЕсли;
        // большие и маленькие буквы считаются различными
        Если НайденныйКаталог.ПолноеИмя + "/" <> ИмяКаталогаСервера Тогда
            Продолжить;
        КонецЕсли;
        Возврат Истина;
    КонецЦикла;
    
    // если не найден каталог для обмена
    Сообщить("Не найден FTP каталог обмена информацией: " + ИмяКаталогаСервера);
        
    Возврат Ложь;

КонецФункции
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.