2015-07-10 34 views
5

在運行下面的代碼,我得到異常jcifs.smb.SmbException:系統找不到指定的文件?

jcifs.smb.SmbException:系統找不到指定的文件

代碼:

public void m1(String b) throws IOException { 
     // TODO Auto-generated method**strong text** stub 

     BufferedReader br=null; 
     String urlToBackUpFile = "smb://" +b +"/" + "c$/Program Files/Office/Config/OfficeSyncData.ini"; 
     String cp="smb://" +b +"/" + "c$/Program Files/Office/Config/OfficeSyncData.txt"; 
     System.out.println("smb folder of source file" + urlToBackUpFile); 
     NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(null, "usrname", "passwd"); 


      SmbFile dir = new SmbFile(cp, auth); 
      SmbFileInputStream in = new SmbFileInputStream(dir); 
     // br = new BufferedReader(new InputStreamReader(in)); 


      System.out.println(dir.getDate()); 
      SmbFile dest = new SmbFile (urlToBackUpFile,auth); 
      //count.copyTo(dest); 
      dir.copyTo(dest); 

    } 

怎麼辦我解決?

+0

是「b」在指定的路徑? –

+0

'b'的值是什麼,異常是指哪一行? –

回答

1

沒有整個堆棧跟蹤我不能完全確定,但您可能需要在路徑中指定轉義空間字符。

試試這個:

String urlToBackUpFile = "smb://" +b +"/" + "c$/Program\\ Files/Office/Config/OfficeSyncData.ini"; 

,並確保在「b」包含你做同樣的空間。

EDITED:也試:你可以指向一個不包含任何空格的位置的路徑嗎?這將證明如果空間語法是你的問題的根源...

+0

如果你想以這種方式轉義,你至少需要兩個'\',即'program \\ files'。不是說它會幫助。 – geert3

+0

對不起,編輯了包含雙「\」的代碼。也許值得一試,因爲linux終端的shell語言(即使在windows中模擬)也需要空間轉義 – gmconte

相關問題