Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Как проверить существование каталога на FTP сервере          
Vofka Подменю пользователя
сообщение 13.09.11, 7:00
Сообщение #1

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

В типовой УТ есть полезная функция:

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


Конец 32541510.gif

Batchir Подменю пользователя
сообщение 13.09.11, 9:09
Сообщение #2

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1426 раз
Рейтинг: 0

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

// ПРИМЕР ПЕРЕДАВАЕМЫХ ПАРАМЕТРОВ
// ИмяКаталогаСервера = "/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 каталог обмена информацией: " + ИмяКаталогаСервера);
        
    Возврат Ложь;

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

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 19:56
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!