java远程共享文件访问jcifs解决密码中特殊符号问题
2013-06-20 18:52
826 查看
注意,先通过NtlmPasswordAuthentication进行验证,验证通过后用SmbFile 加入即可解决jcifs密码中的特殊符号问题
public void smbGet(String remoteUrl,String localDir) {
NtlmPasswordAuthentication auth = null ;
try {
String userName = "administrator";
String password = "admin?1";
String domainIP = "192.168.0.5";
InetAddress ip = InetAddress.getByName("192.168.0.5");
UniAddress myDomain = new UniAddress(ip);
auth = new NtlmPasswordAuthentication(domainIP, userName, password); //先登录验证
System.out.println("auth:"+auth.getDomain());
System.out.println("username:"+auth.getUsername());
System.out.println("password:"+auth.getPassword());
SmbSession.logon(myDomain,auth);
} catch (UnknownHostException e) {
e.printStackTrace();
System.out.println("111!!!");
} catch (SmbException e) {
e.printStackTrace();
System.out.println("222!!!");
}
InputStream in = null;
OutputStream out = null;
try {
SmbFile remoteFile = new SmbFile(remoteUrl,auth); //注意,这句是关键,SmbFile 不支持特殊字符的密码,因此在这里放置
//remoteFile.connect();
if(remoteFile==null){
log.error("共享文件不存在!000");
return;
}
SmbFile localFile = new SmbFile(localDir,auth);
in = new BufferedInputStream(new SmbFileInputStream(remoteFile));
out = new BufferedOutputStream(new SmbFileOutputStream(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();
}
}
}
调用:
String st1="smb://192.168.0.5/test/123.jpg";
String st2="smb://192.168.0.5/test/456.jpg";
System.out.println(st1);
System.out.println(st2);
smbGet(st1,st2);
public void smbGet(String remoteUrl,String localDir) {
NtlmPasswordAuthentication auth = null ;
try {
String userName = "administrator";
String password = "admin?1";
String domainIP = "192.168.0.5";
InetAddress ip = InetAddress.getByName("192.168.0.5");
UniAddress myDomain = new UniAddress(ip);
auth = new NtlmPasswordAuthentication(domainIP, userName, password); //先登录验证
System.out.println("auth:"+auth.getDomain());
System.out.println("username:"+auth.getUsername());
System.out.println("password:"+auth.getPassword());
SmbSession.logon(myDomain,auth);
} catch (UnknownHostException e) {
e.printStackTrace();
System.out.println("111!!!");
} catch (SmbException e) {
e.printStackTrace();
System.out.println("222!!!");
}
InputStream in = null;
OutputStream out = null;
try {
SmbFile remoteFile = new SmbFile(remoteUrl,auth); //注意,这句是关键,SmbFile 不支持特殊字符的密码,因此在这里放置
//remoteFile.connect();
if(remoteFile==null){
log.error("共享文件不存在!000");
return;
}
SmbFile localFile = new SmbFile(localDir,auth);
in = new BufferedInputStream(new SmbFileInputStream(remoteFile));
out = new BufferedOutputStream(new SmbFileOutputStream(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();
}
}
}
调用:
String st1="smb://192.168.0.5/test/123.jpg";
String st2="smb://192.168.0.5/test/456.jpg";
System.out.println(st1);
System.out.println(st2);
smbGet(st1,st2);
相关文章推荐
- java远程共享文件访问jcifs解决密码中特殊符号问题
- java远程共享文件访问jcifs解决密码中特殊符号问题
- java使用smb 远程访问共享文件夹 密码有特殊字符 解决情况
- Flex+Java组合解决汉字或特殊符号(如&等)文件下载时的文件名乱码问题
- 解决win7访问xp共享的文件时,未知用户名或者密码错误的问题
- 对于win7上共享的文件在工作组的其他电脑上无权限访问的问题解决,以及工作组电脑无需密码登入访问设置
- ssh验证解决远程拷贝文件和文件同步需要输入密码的问题
- javabean操作文件正确,但是Jsp调用javabean时文件路径出错问题解决之JavaBean访问本地文件实现路径无关实现方法
- 通过jcifs实现java访问网络共享文件
- java零碎要点---大型软件部署方案,磁盘阵列,raid提升硬盘性能,解决由于集群带来的文件共享问题
- Hadoop HDFS 文件访问权限问题导致Java Web 上传文件到Hadoop失败的原因分析及解决方法
- Java 用JCIFS访问网络文件共享
- java上传文件到磁盘中,设置tomcat虚拟路径进行访问,解决重布项目图片消失问题
- WIN7访问远程共享文件:0x80070035 找不到网络路径解决方法
- java访问远程文件判断是否存在的问题
- 一个局域网中能ping通,但无法访问共享资源的特殊问题解决方法
- java访问远程共享文件
- java远程访问局域网内其他机器的共享文件
- linux系统中mysql修改密码并设置远程访问和解决mysql乱码问题
- Windows7无法访问(远程登录)Windows 2003共享问题解决