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

在java中访问网络共享文件夹(位于Windows或Linux中)的推荐方式是什么,java,linux,suse,Java,Linux,Suse,请原谅,我不熟悉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系统并

请原谅,我不熟悉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系统并运行它时。它只是告诉我无法从指定的
网络共享文件夹
获取任何文件

因此,我尝试在Linux的文件资源管理器中键入路径
\\10.50.90.18
,就像在windows中一样。查看是否可以从Linux系统访问该路径。但是它告诉我
找不到\\10.50.90.18
。但是我确信IP可以从Linux上ping

所以我的问题是

  • 为什么在Linux中无法访问
    \\10.50.90.18
    。但可以在Windows中访问。(我确信他们的IP都是10.50.90.*)
  • 从windows或linux访问网络共享文件夹的最佳方式是什么
  • 谢谢。

    带保险丝的远程安装 可以使用和装载远程文件系统(通常包括SMB/CIFS)。这可能看起来像(假设您有一个挂载点
    /windows

    然后,您可以使用

    纯Java解决方案(使用JCIFS) 提供并允许以下内容

    SmbFile[] files = new SmbFile("smb://10.50.90.18/ITS Tool/xml/").listFiles();
    
    SmbFile
    的链接文档提供了以下完整格式:

    smb://[[domain;]用户名[:密码]@]服务器[:端口]/[[share/[dir/]文件]][?param=value[param2=value2[…]]


    它还注意到,所有代表工作组、服务器、共享或目录的SMB URL都需要一个尾随斜杠“/”。

    您可以从Linux机器ping 10.50.90.18吗?你安装了samba吗?我相信Linux不允许你像那样直接访问UNC。您可以像本地目录一样装载该路径和访问,或者如果不想装载它,可以使用smbclient。或者,使用一个普通的JavaSMB客户端(例如JCIFS?)进行访问,这样您就不需要依赖特定于操作系统的客户端features@ElliottFrisch是的,我可以ping IP。桑巴舞?我对此不确定。如何验证它?总之,SMB是协议名。Samba是Linux上的产品,它以不同的方式实现SMButilties@AdrianShum啊哈。好。很好地解释。:)美好的听起来我有两个选择。好。我想我需要根据你的答案做更多的研究。。这是一个很好的开始。谢谢,对不起。我不知道为什么,我无法访问路径
    smb://10.50.90.18
    在我的Linux中(alt+f2运行windows)。与Java无关。谢谢
    new File("/windows/ITS Tool/xml")
    
    SmbFile[] files = new SmbFile("smb://10.50.90.18/ITS Tool/xml/").listFiles();