Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
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
Код: |
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;
|
|
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|