Каков рекомендуемый способ доступа к общей сетевой папке (расположенной в Windows или Linux) в Java
Все, прости меня, я не знаком с Linux. Я пытаюсь прочитать все файлы общей сетевой папки, которая находится в системе Windows или Linux.
В настоящее время я только что сделал это для случая Windows с помощью приведенного ниже кода.
networkShareFolder="\\\\10.50.90.18\\ITS Tool\\xml\\";//It is a windows Network share path.
File[] files = new File(networkShareFolder).listFiles();
Но когда я развертываю свое приложение в системе Linux и запускаю его. Он просто сказал мне, не может получить какие-либо файлы из указанного networkShareFolder
;
Поэтому я попытался ввести путь \\10.50.90.18
в проводнике файлов Linux нравится то, что я делал в windows. Чтобы увидеть, можно ли найти путь из системы Linux. Но это только что сказал мне Can't locate the \\10.50.90.18
, Но я уверен, что IP может пинговать с Linux.
Так что мои вопросы
- Зачем
\\10.50.90.18
недоступен в Linux. Но доступен в Windows. (Я уверен, что их IP все 10.50.90.*) - Каков наилучший способ доступа к общей сетевой папке из Windows или Linux?
Благодарю.
1 ответ
Дистанционное крепление с FUSE
Возможно смонтировать удаленную файловую систему (обычно включая SMB/CIFS) с FUSE и samba. Это может выглядеть примерно так (при условии, что у вас есть точка монтирования /windows
)
# export USER=efrisch
# export WORKGRP=mygrp
# smbmount //10.50.90.18/ /windows –o username=$USER,workgroup=$WORKGRP
Тогда вы можете получить доступ к вашему каталогу (прозрачно) с
new File("/windows/ITS Tool/xml")
Чистое решение Java (с JCIFS)
JCIFS предоставляет SmbFile
и это обеспечивает listFiles()
позволяя что-то вроде
SmbFile[] files = new SmbFile("smb://10.50.90.18/ITS Tool/xml/").listFiles();
Связанная документация для SmbFile
дает полный формат как
СМБ: //? [[[домен]; имя пользователя [: пароль] @] сервер [: порт] / [[/] файл доля / [каталог]]] [PARAM = значение [param2= значение2[...]]]
он также отмечает, что для всех SMB-URL-адресов, представляющих рабочие группы, серверы, общие ресурсы или каталоги, требуется завершающий слеш '/'.