Каков рекомендуемый способ доступа к общей сетевой папке (расположенной в 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.

Так что мои вопросы

  1. Зачем \\10.50.90.18 недоступен в Linux. Но доступен в Windows. (Я уверен, что их IP все 10.50.90.*)
  2. Каков наилучший способ доступа к общей сетевой папке из 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-адресов, представляющих рабочие группы, серверы, общие ресурсы или каталоги, требуется завершающий слеш '/'.

Другие вопросы по тегам