Создайте папку на подключенном сетевом диске с помощью Java

Я пытаюсь создать папку на подключенном сетевом диске Z: с помощью Java

К сожалению, файл не создается. Вот что я делаю:

File file = new File("Z:/file1");
file.mkdir();

Этот код работает, если сетевой диск не используется. Это в среде Windows.

Любые идеи?


person Marquinio    schedule 04.01.2011    source источник
comment
У вас есть права на создание этого каталога. Попробуйте создать каталог в проводнике.   -  person Peter Lawrey    schedule 05.01.2011
comment
Этот код работает от вашего имени, а не от службы?   -  person Peter Lawrey    schedule 05.01.2011
comment
Этот код Java находится в веб-приложении, работающем под управлением Tomcat 5.5.   -  person Marquinio    schedule 05.01.2011
comment
И я могу создавать папки через проводник Windows.   -  person Marquinio    schedule 05.01.2011
comment
Вернемся к вопросу Питера Лоури: работает ли веб-приложение как служба Windows? Или вы вручную запустили Tomcat, используя файл .bat?   -  person Dan    schedule 05.01.2011
comment
Хорошо, да, Tomcat работает под службой Windows. Я просто взял тот же фрагмент кода, работающий под Tomcat, и создал небольшой тестовый JAR, который создал бы папку на подключенном диске, и это сработало. Я думаю, это проблемы с привилегиями, которые есть у Tomcat.   -  person Marquinio    schedule 05.01.2011
comment
Все работает, если я запускаю Tomcat через командную строку   -  person Marquinio    schedule 05.01.2011


Ответы (1)


Хорошо, я понял это. Tomcat работает под управлением Windows 2003 Server. Согласно тому, что я обнаружил, когда Tomcat запускается в службах Windows, по какой-то причине у него нет доступа к подключенному сетевому диску. Использование путей UNC сработало для меня.

File myFile = new File("\\\\server\\shared\\input");
myFile.mkdir();

Мне удалось создать папку на подключенном сетевом диске на этом сервере.

person Marquinio    schedule 06.01.2011