2013-08-15 8 views
4

Я поделился папкой на своем сервере, используя общий доступ Windows. На другом компьютере, где я запускаю свой код, я сопоставил сетевой диск, указывающий на эту папку.Записать файл в удаленное местоположение с использованием Java с сетевым путем или дисководом?

В моем коде я периодически передаю файлы с локального компьютера на свой сервер. Что-то вроде этого:

File srcFile = new File("C:\\test.mpg"); 
File destFile = new File(...); 

// error checking 
FileUtils.moveFile(srcFile, destFile); 

Для destFile, какой подход использовать? Мой текущий подход:

File destFile = new File("Z:\\folder\\test.mpg"); 

или используя сетевой путь:

File destFile = new File("\\192.168.123.123\\folder\\test.mpg"); 

я спрашиваю это потому, что в последнее время я столкнулся те случаи, когда передача файла терпит неудачу, потому что моя программа не может записать мой потому что он не вошел в систему, и мне нужно вручную перейти на диск и ввести мои учетные данные и включить параметр «Оставайтесь на связи».

ответ

5

Вы можете использовать подключенные диски или полные сетевые пути эквивалентно; Java не волнует и просто передает имя файла в ОС. Обратите внимание: если вы используете сетевой путь, вам нужно сначала \\\\.

3

Вы можете использовать библиотеку JCIFS для доступа к ресурсу Windows SMB в Java. Используя его, вы могли бы сделать что-то вроде следующего:

String smbUrl = "smb://username:[email protected]/share/file"; 
SmbFileOutputStream fos = new SmbFileOutputStream(new SmbFile(smbURL)); 
+1

, если у вас есть домен, то вы должны использовать его как домен; пользователь: пароль, например, строка smbUrl = «кого-л: // домен, имя пользователя: пароль @ сервер/доля/файл "; –