gpt4 book ai didi

java - 在 java 中访问网络共享文件夹(位于 Windows 或 Linux 中)的推荐方法是什么

转载 作者:IT王子 更新时间:2023-10-29 00:25:00 28 4
gpt4 key购买 nike

所有,原谅我对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 中获取任何文件;

所以我尝试像在 Windows 中那样在 Linux 的文件资源管理器中键入路径 \\10.50.90.18。从linux系统看路径是否可达。但它只是告诉我 Can't locate the\\10.50.90.18。但我确信该 IP 可以从 Linux 上 ping 通。

所以我的问题是

  1. 为什么\\10.50.90.18在Linux下无法访问,但在Windows下可以访问。 (我确定他们的 IP 都是 10.50.90.*)
  2. 从 Windows 或 Linux 访问网络共享文件夹的最佳方式是什么?

谢谢。

最佳答案

带 FUSE 的远程安装

可以使用 FUSE 挂载远程文件系统(通常包括 SMB/CIFS)和 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://[[[domain;]username[:password]@]server[:port]/[[share/[dir/]file]]][?param=value[param2=value2[...]]]

它还指出,所有代表工作组、服务器、共享或目录的 SMB URL 都需要尾部斜杠“/”。

关于java - 在 java 中访问网络共享文件夹(位于 Windows 或 Linux 中)的推荐方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30496635/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com