CftClub.ru
Клуб специалистов ЦФТ-Банк

Mkdir

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы
Предыдущая тема :: Следующая тема  
Автор Сообщение
Kart
Участник


Вступление в Клуб: 26.10.2012
СообщениеПт Окт 26, 2012 13:03   Mkdir Ответить с цитатой
Полезность: Нет оценки
Привет всем. Есть функция mkdir, при создании директории возвращает отрицательное значение (то есть создание папки закончилось провалом, как я думал) но папка была создана, пустая но была(
В свете того, что есть цикл который заканчивается только тогда, когда возвращаемое фукнцией значение >0 то плодятся много ненужных папок.

Кто знает про MkDir то, что не знаю я? Подскажите плз.
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеПт Окт 26, 2012 16:58    Ответить с цитатой
Полезность: Нет оценки
из документации:
Цитата:
Код:
function MKDIR (name_i in string, mode_i in integer, p_chk boolean default true,
                name_text integer default NULL ) return integer;

создает новый каталог, возвращает 0 в случае успеха, иначе код ошибки < 0,
создание каталогов доступно, если в профиле пользователя задана настройка
FIO_MAKE_DIR='YES', параметры:
name_i - имя каталога,
mode_i - флаги доступа к каталогу (биты доступа - rwxrwxrwx),
p_chk - признак проверки доступа к каталогу в name_i,
false - по FIO_BASE_DIR, true - по FIO_ROOT_DIR,
name_text - кодировка имени каталога, если не задана или пустая, тогда
используется умолчательная кодировка имен файлов

_________________
всегда есть как минимум 2 выхода
Random
Эксперт


Вступление в Клуб: 27.06.2011
СообщениеПт Ноя 02, 2012 08:27   Re: Mkdir Ответить с цитатой
Полезность: Нет оценки
Kart пишет:
Привет всем. Есть функция mkdir, при создании директории возвращает отрицательное значение (то есть создание папки закончилось провалом, как я думал) но папка была создана, пустая но была(
В свете того, что есть цикл который заканчивается только тогда, когда возвращаемое фукнцией значение >0 то плодятся много ненужных папок.

Кто знает про MkDir то, что не знаю я? Подскажите плз.


После того, как результат стал отрицательным, что говорит stdio.error_message(от этого числа) ?

Ну и в любом случае, если цель функции - создать папку, то и выходить нужно тогда, когда DirectoryExists() = true, а не по каким-то там результатам функции mkdir Smile

Код:

function DirectoryExists(p_path varchar2) return boolean is
v$state   number;
v$path   varchar2(32767);
begin
   v$path := p_path;
   cp(v$path);-- берется правильный символ слэша из настроек, в пути заменяются все слэши на правильные
   v$state := stdio.opendir(dirname == v$path, dir_flag == 1);

   if v$state = -2 then -- каталог не найден
      return false;
   elsif v$state < 0 then
      return false;
   end if;

   v$state := stdio.closedir(v$state);
   return true;
end;
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru