全部,原谅我,我不熟悉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
;
所以我尝试在Linux的File explorer中输入路径\\10.50.90.18
,就像我在windows中所做的那样。查看是否可以从Linux系统访问该路径。但它只是告诉我Can't locate the \\10.50.90.18
。但我确信IP可以从Linux ping。
所以我的问题是
\\10.50.90.18
。但是可以在Windows中访问。 (我相信他们的IP都是10.50.90。*)感谢。
答案 0 :(得分:12)
可以使用FUSE和samba安装远程文件系统(通常包括SMB / CIFS)。这可能看起来像(假设你有一个挂载点/windows
)
# export USER=efrisch
# export WORKGRP=mygrp
# smbmount //10.50.90.18/ /windows –o username=$USER,workgroup=$WORKGRP
然后您可以使用
访问您的目录(透明地)new File("/windows/ITS Tool/xml")
JCIFS提供SmbFile
,并提供listFiles()
允许类似
SmbFile[] files = new SmbFile("smb://10.50.90.18/ITS Tool/xml/").listFiles();
SmbFile
的关联文档确实提供了完整格式
SMB:// [[[域]用户名[:密码] @]服务器[:端口] / [[份额/ [DIR /]文件]]]?[参数=值[参数2 =值2 [.. 。]]]
并且它还指出代表工作组,服务器,共享或目录的所有SMB URL都需要一个斜杠' /'。