Java局域網文件訪問(通過command命令)

訪問局域網內一臺IP爲1.2.3.4的機器上的共享文件。需要提供登錄用戶和密碼。

一個簡單的操作。當時主要是爲了訪問有密碼訪問限制的用戶文件來設計的。爲了安全考慮。

僅供參考!有什麼不對的地方請指正。

其實,還想實現一個非局域網內文件的訪問。比如說我的機器如果要訪問機器A,需要穿防火牆的操作,防火牆有用戶名密碼等

設置,一直不知道該怎麼實現。有人說用socket可以實現。還沒關注過,等有時間的時候再考慮下。

  1. import java.io.BufferedReader;
  2. import java.io.File;
  3. import java.io.InputStream;
  4. import java.io.InputStreamReader;
  5. public class GetShareFile {
  6.     public static void main(String[] args) throws Exception{
  7.         String shareDirectoryName = "ShareDoc";
  8.         String host = "1.2.3.4";//需要訪問的主機host
  9.         String username = "administrator";//訪問用戶
  10.         String password = "password";//密碼
  11.         String path = "////"+host+"//"+shareDirectoryName ;//訪問路徑
  12.         if(username != null && username.trim().length()>0){
  13.             Runtime runtime = Runtime.getRuntime();
  14.             String command = "net use "+path+" "+" /delete";
  15.             Process p = runtime.exec(command);
  16.             command = "net use "+path+" "+password+" /"+"user:"+username ;
  17.             p = runtime.exec(command);
  18.             
  19.             InputStream stderr=p.getErrorStream();
  20.             InputStreamReader isr=new InputStreamReader(stderr);
  21.             BufferedReader br=new BufferedReader(isr);
  22.             String line="";
  23.             StringBuffer errorsb = new StringBuffer() ;
  24.             while(line!=null){
  25.                 line = br.readLine();
  26.                 if(line != null) errorsb.append(line);  
  27.             }
  28.             if(errorsb != null && errorsb.toString().trim().length()>0) {
  29.                 System.out.println(errorsb.toString());
  30.                 throw new Exception(errorsb.toString());
  31.             }
  32.             
  33.             File dir=new File(path);
  34.             if(dir.exists() && dir.isDirectory()){
  35.                 File[] tmp=dir.listFiles();
  36.                 for(File file:tmp){
  37.                     System.out.println(file.getName());
  38.                 }
  39.             }else{
  40.                 if(dir.exists()){
  41.                     System.out.println(dir.getName());
  42.                 }
  43.             }
  44.             
  45.             
  46.         }
  47.     }
  48. }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章