您好,欢迎访问一九零五行业门户网

JAVA远程访问共享目录

1.2 jcifs
jcifs pan>是一个用java开发的smb客户端库,利用jcifs可以操作windows共享文件,可以得到域用户,实现单点登录,最新版本为:1.3.12,官方网址:http://jcifs.samba.org/
2. 代码实现
package uploadsmb;
import java.io.bufferedinputstream;
import java.io.bufferedoutputstream;
import java.io.file;
import java.io.fileinputstream;
import java.io.fileoutputstream;
import java.io.ioexception;
import java.io.inputstream;
import java.io.outputstream;
import jcifs.smb.smbfile;
import jcifs.smb.smbfileinputstream;
import jcifs.smb.smbfileoutputstream;
public class uploaddownloadutil {
/**
* description: 从共享目录拷贝文件到本地
* @version1.0 sep 25, 2009 3:48:38 pm
* @param remoteurl 共享目录上的文件路径
* @param localdir 本地目录
*/
public void smbget(string remoteurl,string localdir) {
inputstream in = null;
outputstream out = null;
try {
smbfile remotefile = new smbfile(remoteurl);
if(remotefile==null){
system.out.println(共享文件不存在);
return;
}
string filename = remotefile.getname();
file localfile = new file(localdir+file.separator+filename);
in = new bufferedinputstream(new smbfileinputstream(remotefile));
out = new bufferedoutputstream(new fileoutputstream(localfile));
byte[] buffer = new byte[1024];
while(in.read(buffer)!=-1){
out.write(buffer);
buffer = new byte[1024];
}
} catch (exception e) {
e.printstacktrace();
} finally {
try {
out.close();
in.close();
} catch (ioexception e) {
e.printstacktrace();
}
}
}
/**
* description: 从本地上传文件到共享目录
* @version1.0 sep 25, 2009 3:49:00 pm
* @param remoteurl 共享文件目录
* @param localfilepath 本地文件绝对路径
*/
public void smbput(string remoteurl,string localfilepath) {
inputstream in = null;
outputstream out = null;
try {
file localfile = new file(localfilepath);
string filename = localfile.getname();
smbfile remotefile = new smbfile(remoteurl+/+filename);
in = new bufferedinputstream(new fileinputstream(localfile));
out = new bufferedoutputstream(new smbfileoutputstream(remotefile));
byte[] buffer = new byte[1024];
while(in.read(buffer)!=-1){
out.write(buffer);
buffer = new byte[1024];
}
} catch (exception e) {
e.printstacktrace();
} finally {
try {
out.close();
in.close();
} catch (ioexception e) {
e.printstacktrace();
}
}
}
public static void main(string[] args){
uploaddownloadutil test = new uploaddownloadutil() ;
// smb:域名;用户名:密码@目的ip/文件夹/文件名.xxx
//test.smbget(smb://szpcg;jiang.t:xxx@192.168.193.13/jake/test.txt, c://) ;
test.smbput(smb://szpcg;jiang.t:xxx@192.168.193.13/jake, c://test.txt) ;
}
}
2.3 remoteurl说明
remoteurl如何填写是值得注意的
如果是无需密码的共享,则类似如下格式:
smb://ip/sharefolder(例如:smb://192.168.0.77/test)
如果需要用户名、密码,则类似如下格式:
smb://username:password@ip/sharefolder(例如:smb://chb:123456@192.168.0.1/test)
// smb:域名;用户名:密码@目的ip/文件夹/文件名.xxx
//test.smbget(smb://szpcg;jiang.t:xxx@192.168.193.13/jake/test.txt, c://) ;
test.smbput(smb://szpcg;jiang.t:xxx@192.168.193.13/jake, c://test.txt) ;
其它类似信息

推荐信息