What is the recommended way of accessing a network share folder (located in Windows or Linux) in java

拈花ヽ惹草 提交于 2019-12-03 09:56:44

问题


All, Forgive me I am not familiar with the Linux. I am trying to read all the files of a network share folder which is located in either Windows or Linux system.

Currently I just made it work for the case of Windows by below code.

networkShareFolder="\\\\10.50.90.18\\ITS Tool\\xml\\";//It is a windows Network share path.
File[] files = new File(networkShareFolder).listFiles();

But When I deploy my application to the Linux system and run it. It just told me can not get any files from the specified networkShareFolder;

So I tried to type the path \\10.50.90.18 in the File explorer of Linux like what I did in the windows. To see if the path can be reached from the Linux system. But it just told me Can't locate the \\10.50.90.18. But I am sure the IP can be ping from the Linux.

So my questions are

  1. Why \\10.50.90.18 can't be accessed in Linux .But can be accessed in Windows. (I am sure their IP are all 10.50.90.*)
  2. What is the best way to access the network share folder from windows or linux ?

Thanks.


回答1:


Remote Mount with FUSE

It's possible to mount a remote filesystem (generally including SMB/CIFS) with FUSE and samba. That might look something like (assuming you have a mountpoint /windows)

# export USER=efrisch
# export WORKGRP=mygrp
# smbmount //10.50.90.18/ /windows –o username=$USER,workgroup=$WORKGRP

Then you could access your directory (transparently) with

new File("/windows/ITS Tool/xml")

Pure Java Solution (with JCIFS)

JCIFS provides SmbFile and that provides listFiles() allowing something like

SmbFile[] files = new SmbFile("smb://10.50.90.18/ITS Tool/xml/").listFiles();

The linked documentation for SmbFile does give the full format as

smb://[[[domain;]username[:password]@]server[:port]/[[share/[dir/]file]]][?param=value[param2=value2[...]]]

and it also notes that all SMB URLs that represent workgroups, servers, shares, or directories require a trailing slash '/'.



来源:https://stackoverflow.com/questions/30496635/what-is-the-recommended-way-of-accessing-a-network-share-folder-located-in-wind

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!