赞
踩
前提背景:A系统与B系统的集成,A提交相关数据到B系统,数据格式为XML,XML标签中放着物理文件的访问路径,因A系统不能对外开发共享目录,B系统提供可访问操作的共享路径。
API中提供了实例说明,慢慢玩。
import jcifs.smb.*;
jcifs.Config.setProperty( "jcifs.netbios.wins", "192.168.1.220" );
NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("domain", "username", "password");
SmbFileInputStream in = new SmbFileInputStream("smb://host/c/My Documents/somefile.txt", auth);
byte[] b = new byte[8192];
int n;
while(( n = in.read( b )) > 0 ) {
System.out.write( b, 0, n );
}
这里采用了设置相关参数的用法,因为共享机器中用户密码包含@这样不能直接拼接path url。
区别点,从共享那里取文件SmbFileInputStream,向共享那里送文件SmbFileOutputStream
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; import jcifs.Config; import jcifs.smb.NtlmPasswordAuthentication; import jcifs.smb.SmbException; import jcifs.smb.SmbFile; import jcifs.smb.SmbFileInputStream; import jcifs.smb.SmbFileOutputStream; public class SMBUtil { static NtlmPasswordAuthentication auth; static { //先祭天,如果不加,访问时长8秒起步,加快访问共享目录的速度 Config.setProperty("jcifs.netbios.wins", "共享目录IP(0.0.0.0)"); Config
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。