各位,请原谅我对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
。但我确信可以从 Linux ping 通 IP。
所以我的问题是
- Why
\\10.50.90.18
在Linux下无法访问,但在Windows下可以访问。 (我确信他们的IP都是10.50.90.*)
- 从 Windows 或 Linux 访问网络共享文件夹的最佳方式是什么?
Thanks.
带保险丝的远程安装
可以使用以下命令挂载远程文件系统(通常包括 SMB/CIFS)FUSE and 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
确实给出了完整的格式
smb://[[[域名;]用户名[:密码]@]服务器[:端口]/[[共享/[目录/]文件]]][?param=value[param2=value2[...]] ]
它还指出所有代表工作组、服务器、共享或目录的 SMB URL 都需要尾部斜杠“/”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)