1. 程式人生 > >smb 連線判斷資料夾是否存在,登陸密碼含有特殊字元的情況

smb 連線判斷資料夾是否存在,登陸密碼含有特殊字元的情況

package Util;


import java.net.InetAddress;
import java.net.UnknownHostException;


import jcifs.UniAddress;
import jcifs.smb.NtlmPasswordAuthentication;
import jcifs.smb.SmbException;
import jcifs.smb.SmbFile;
import jcifs.smb.SmbSession;

//引數即為要判斷的路徑   例:smb://192.168.30.130/data/MPStudio/000009/
public class SmbUtil {
public static boolean smbExist(String remoteUrl) throws SmbException { 


    NtlmPasswordAuthentication auth = null ;
    SmbFile remoteFile = null;
           try {  
               String userName = "administrator";  
               String password = "
[email protected]
";  
               String domainIP = "192.168.30.130"; 
               InetAddress ip = InetAddress.getByName("192.168.30.130"); 
               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!!!");  
           } 
    try { 
    remoteFile = new SmbFile(remoteUrl,auth); //注意,這句是關鍵,SmbFile 不支援特殊字元的密碼,因此在這裡放置
    remoteFile.connect();
    return remoteFile.isDirectory();
    
    } 
    catch (Exception e) { 
    e.printStackTrace(); 
    }  
    return remoteFile.isDirectory();
    }


}