1 package com.xx.test; 2 3 4 import java.io.BufferedInputStream; 5 import java.io.BufferedOutputStream; 6 import java.io.File; 7 import java.io.FileInputStream; 8 import java.io.FileOutputStream; 9 import java.io.IOException; 10 import java.io.InputStream; 11 import java.io.OutputStream; 12 import jcifs.smb.SmbFile; 13 import jcifs.smb.SmbFileInputStream; 14 import jcifs.smb.SmbFileOutputStream; 15 16 /** 17 * java访问共享目录 18 * 19 * @author 林计钦 20 * @version 1.0 2013-7-16 上午09:18:38 21 */ 22 public class test02 { 23 24 public static void main(String[] args) throws Exception { 25 //smb://xxx:xxx@192.168.2.188/testIndex/ 26 //xxx:xxx是共享机器的用户名密码 27 String url="smb://C1307890:Ivo123@10.20.2.33/CIMPublic/"; 28 SmbFile file = new SmbFile(url); 29 if(file.exists()){ 30 SmbFile[] files = file.listFiles(); 31 for(SmbFile f : files){ 32 System.out.println(f.getName()); 33 } 34 } 35 36 smbGet("smb://C1307890:Ivo123@10.20.2.33/CIMPublic/02 MES/SPC/Spc_Check_IVO_V1_00.ppt", "D:/ap_log"); 37 smbPut("smb://C1307890:Ivo123@10.20.2.33/CIMPublic/", "D:/qra/fileUpload/SQL_JOIN.pptx"); 38 39 } 40 41 // 从共享目录下载文件 42 @SuppressWarnings("unused") 43 public static void smbGet(String remoteUrl,String localDir) { 44 InputStream in = null; 45 OutputStream out = null; 46 try { 47 SmbFile remoteFile = new SmbFile(remoteUrl); 48 if(remoteFile==null){ 49 System.out.println("共享文件不存在"); 50 return; 51 } 52 String fileName = remoteFile.getName(); 53 File localFile = new File(localDir+File.separator+fileName); 54 in = new BufferedInputStream(new SmbFileInputStream(remoteFile)); 55 out = new BufferedOutputStream(new FileOutputStream(localFile)); 56 byte[] buffer = new byte[1024]; 57 while(in.read(buffer)!=-1){ 58 out.write(buffer); 59 buffer = new byte[1024]; 60 } 61 } catch (Exception e) { 62 e.printStackTrace(); 63 } finally { 64 try { 65 out.close(); 66 in.close(); 67 } catch (IOException e) { 68 e.printStackTrace(); 69 } 70 } 71 } 72 73 //向共享目录上传文件 74 public static void smbPut(String remoteUrl,String localFilePath) { 75 InputStream in = null; 76 OutputStream out = null; 77 try { 78 File localFile = new File(localFilePath); 79 80 String fileName = localFile.getName(); 81 SmbFile remoteFile = new SmbFile(remoteUrl+"/"+fileName); 82 in = new BufferedInputStream(new FileInputStream(localFile)); 83 out = new BufferedOutputStream(new SmbFileOutputStream(remoteFile)); 84 byte[] buffer = new byte[1024]; 85 while(in.read(buffer)!=-1){ 86 out.write(buffer); 87 buffer = new byte[1024]; 88 } 89 } catch (Exception e) { 90 e.printStackTrace(); 91 } finally { 92 try { 93 out.close(); 94 in.close(); 95 } catch (IOException e) { 96 e.printStackTrace(); 97 } 98 } 99 } 100 101 }
远程url smb://192.168.0.77/test如果需要用户名密码就这样:
smb://username:password@192.168.0.77/test