08
Июн
2017

Создание пустых каталогов в Windows

Стоит задача написать PL/SQL процедуру, которая будет создавать пустую папку по указанному пути.

Я знаю что для этого можно использовать класс написанный на Java, а так же выдавать права пользователю, на доступ к этой папке.

Пишу вот такой класс:

public class Create_Folder
{
 public static void create( java.lang.String  patch )
 {
 String sLogText;
 try
 {
  File dir = new File(patch);
  boolean created = dir.mkdir();
  if(created)
  {
   sLogText = "Каталог успешно создан ) "+dir.getAbsolutePath() ;
   #sql{ INSERT INTO PARUS.DIAGNOSTIC_LOG(NUM_LOG, TEXT_LOG) VALUES (2,:sLogText) };  
   #sql { COMMIT };
  }
  else
  {
   sLogText = "Каталог не создан (" ;
   #sql{ INSERT INTO PARUS.DIAGNOSTIC_LOG(NUM_LOG, TEXT_LOG) VALUES (2,:sLogText) };  
   #sql { COMMIT };
  }
}
catch(Exception ex)
{
   ex.printStackTrace();
}     }    }

Код для процедуры оболочки:

CREATE OR REPLACE PROCEDURE Create_folder(sPatch   in varchar2)
 AS LANGUAGE JAVA  NAME 'Create_Folder.create(java.lang.String)';

Код для процедуры PL/SQL:

create or replace procedure P_CREATE_FOLDER
(
 sPATCH    in varchar2
)
  as
 begin
   delete diagnostic_log;
   dbms_java.grant_permission('USER','SYS:java.io.FilePermission','sPATCH', 'read,write' );
   Create_folder(sPATCH);
 end;

Планирую создавать папки по пути F:\\.... В лог таблицу иногда сообщается, что успешно создан каталог, иногда то, что не создан. После сообщения об успешном создании каталога по указанному пути ничего не создано.

В чем может быть дело?

Источник: https://ru.stackoverflow.com/questions/676928/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BF%D1%83%D1%81%D1%82%D1%8B%D1%85-%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%BE%D0%B2-%D0%B2-windows

Тебе может это понравится...

Добавить комментарий