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

Пробую на 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
Java JCIFS возможно ли скопировать (перенести) файлы с samba на windows?
    #39277705
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Java под Windows чудесно работает с UNC путями. Особой надобности в JCIFS нет.

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

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

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


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

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

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


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