Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Java JCIFS возможно ли скопировать (перенести) файлы с samba на windows? / 8 сообщений из 8, страница 1 из 1
21.07.2016, 12:08
    #39277691
drno
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java JCIFS возможно ли скопировать (перенести) файлы с samba на windows?
Здравствуйте.

Пробую на java написать приложение, которое бы копировало (переносило) файлы с samba в папку windows.
Для этих целей нашел библиотеку samba JCIFS.

Пример копирования внутри samba есть.

Код: java
1.
2.
3.
smbFromFile = new SmbFile("smb://...pool/from-here/the-file.pdf", auth);
smbToFile = new SmbFile("smb://...pool/to-here/the-file.pdf", auth);
smbFromFile.copyTo(smbToFile);




Пример создания файла на samba
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
String user = "usersamba";
            String pass ="1234";
            String hostname = "192.168.10.1";
            String sharedFolder="data/new";
            String path="smb://"+hostname+"/"+sharedFolder+"/test.txt";
            NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("",user, pass);
            SmbFile smbFile = new SmbFile(path,auth);
            SmbFileOutputStream smbfos = new SmbFileOutputStream(smbFile);
            smbfos.write("testing....and writing to a file".getBytes());
            System.out.println("completed ...nice !");




Проверил оба работают.

НО пока так и не удалось найти решение копирования файлов с samba в локальную папку windows при условии, что приложении будет запускаться с сервера windows.

Прошу помочь в решении проблемы.
...
Рейтинг: 0 / 0
21.07.2016, 12:18
    #39277705
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java JCIFS возможно ли скопировать (перенести) файлы с samba на windows?
Java под Windows чудесно работает с UNC путями. Особой надобности в JCIFS нет.

авторНО пока так и не удалось найти решение копирования файлов с samba в локальную папку windows при условии, что приложении будет запускаться с сервера windows

С какого ещё "сервера". Что значит "запускаться с сервера"? В терминологии юзера это зайти на шару и кликнуть на exe-шник. В терминологии программиста это вообще о чем ?
...
Рейтинг: 0 / 0
21.07.2016, 16:23
    #39278058
drno
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java JCIFS возможно ли скопировать (перенести) файлы с samba на windows?
Blazkowicz,

Каким образом подружить
Код: java
1.
2.
SmbFile smbFromFile = new SmbFile("smb://192.168.10.1/data", auth); 
File destinationFolder = new File("C:\\Temp\\New\\");


?
...
Рейтинг: 0 / 0
21.07.2016, 16:34
    #39278067
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java JCIFS возможно ли скопировать (перенести) файлы с samba на windows?
drno,

Аутентификация точно нужна? Она имеет смыл только в том случае, если у каждого пользователя свой аккаунт и своя шара? Тогда придется использовать JCIFS. В противном случае логин с паролем нужно перенести в сеть и забыть про них в Java.
А файлы копировать простым
Код: java
1.
2.
3.
Files.copy(
    Paths.get("C:\\Temp\\New\\"), 
    Paths.get("\\\\192.168.10.1\\data"));
...
Рейтинг: 0 / 0
21.07.2016, 16:37
    #39278073
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java JCIFS возможно ли скопировать (перенести) файлы с samba на windows?
Вот пример кода
http://stackoverflow.com/a/17913225
Только лучше заменить копирование на методы Apache Commons IOUtils
...
Рейтинг: 0 / 0
22.07.2016, 14:05
    #39278666
drno
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java JCIFS возможно ли скопировать (перенести) файлы с samba на windows?
Blazkowicz,

варианты решения здесь

http://www.programering.com/a/MTO2YTNwATM.html

пример с samba на windows

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
InputStream in = null;
           OutputStream out = null;
           try{

               String SambaURL= "smb://usersamba:1234@192.168.1.110/data/1b.csv";
               File destinationFolder = new File("C:\\Temp\\IN\\");
               SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddHHmmssSSS_");
               File child = new File (destinationFolder+ "/" + fmt.format(new Date()) +"1b.csv");
               SmbFile dir = new SmbFile(SambaURL);
               SmbFile fileToGet=new SmbFile(SambaURL);
               fileToGet.connect();

               in = new BufferedInputStream(new SmbFileInputStream(fileToGet));
               out = new BufferedOutputStream(new FileOutputStream(child));

               byte[] buffer = new byte[4096];
               int len = 0; //Read length
               while ((len = in.read(buffer, 0, buffer.length)) != -1) {
                         out.write(buffer, 0, len);
               }
               out.flush(); //The refresh buffer output stream
           }
           catch (Exception e) {
               String msg = "The error occurred: " + e.getLocalizedMessage();
               System.out.println(msg);
           }
           finally {
               try {
                   if(out != null) {
                       out.close();
                   }
                   if(in != null) {
                       in.close();
                   }
               }
               catch (Exception e) {}
           }
...
Рейтинг: 0 / 0
22.07.2016, 14:24
    #39278686
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java JCIFS возможно ли скопировать (перенести) файлы с samba на windows?
drnoпример с samba на windows

Кривой, глючный legacy код. out.close() выкидывает исключение и in.close() не закрывается. AutoClosable это сейчас основы Java. Надо знать.
...
Рейтинг: 0 / 0
22.07.2016, 14:25
    #39278689
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java JCIFS возможно ли скопировать (перенести) файлы с samba на windows?
Apache Commons тоже надо знать. Смысл тут от двойной буферизации?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Java JCIFS возможно ли скопировать (перенести) файлы с samba на windows? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]