【发布时间】:2023-03-06 14:42:02
【问题描述】:
所有,请原谅我对 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 的文件资源管理器中键入路径 \\10.50.90.18,就像我在 Windows 中所做的那样。查看是否可以从 Linux 系统访问该路径。但它只是告诉我Can't locate the \\10.50.90.18。但我确信 IP 可以从 Linux ping 通。
所以我的问题是
- 为什么
\\10.50.90.18在Linux下无法访问,但在Windows下可以访问。 (我确定他们的IP都是10.50.90.*) - 从 windows 或 linux 访问网络共享文件夹的最佳方法是什么?
谢谢。
【问题讨论】:
-
你能从 Linux 机器上 ping 10.50.90.18 吗?你有安装 samba 吗?
-
我相信 Linux 不允许你像那样直接访问 UNC。您可以像本地目录一样挂载该路径并访问,或者如果您不喜欢挂载它,可以使用 smbclient。或者更便携的方式,使用普通的 Java SMB 客户端(例如 JCIFS?)来访问,这样您就不需要依赖特定于操作系统的功能
-
@ElliottFrisch 是的,我可以 ping 通 IP。桑巴?我不确定。如何验证呢?谢谢。
-
SMB 简而言之就是协议名称。 Samba 是 Linux 上使用不同实用程序实现 SMB 的产品
-
@AdrianShum 啊哈。好的 。好好解释。 :)