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
\\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.*) Thanks.
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")
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 '/'.