2012-06-27 67 views
1

我一直在試圖通過FTPClient將文件發送到FTP服務器,但是當我得到的回覆字符串,它說:FTPClient無法打開文件,沒有這樣的文件或目錄

553能否」 t打開文件:沒有這樣的文件或目錄。

下面是代碼:

try 
{ 
    FTPClient client = new FTPClient(); 
    client.connect(hostname); 
    client.login(username, password); 

    client.setFileType(FTP.BINARY_FILE_TYPE); 
    client.enterLocalPassiveMode(); 
    client.changeWorkingDirectory(workingDir);   
    File dir = new File(savePath + fileName); 
    FileInputStream fIS = new FileInputStream(dir); 

    for(File files : dir.listFiles()) 
    { 
     boolean success = client.storeFile(files.getPath(), fIS); 
     Toast.makeText(getBaseContext(), client.getReplyString(), Toast.LENGTH_LONG).show(); 
     Toast.makeText(getBaseContext(), files.getPath() + " Stored = " + success, Toast.LENGTH_LONG).show(); 
    } 

    fIS.close(); 
    client.logout(); 
} 
catch (SocketException e) 
{ 
    Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_LONG).show(); 
} 
catch (IOException e) 
{ 
    Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_LONG).show(); 
} 

我一直在尋找所有在互聯網上尋找答案,但沒有奏效。

+0

剛剛試過那現在,我得到了「IOException:複製時被捕獲」。 任何想法? – kamden

+0

答案是在for循環中移動FileInputStream。 現在它已經傳輸了文件,但它仍然不在FTP服務器上。我不明白 – kamden

+0

我的不好,FileZilla只是很慢重新加載,文件在那裏 – kamden

回答

1

我解決了CoolBeans幫助下的問題。

對於類似的問題有人解決的辦法是

1.更改的:

client.storeFile(files.getPath(), fIS); 

到:

client.storeFile(files.getName(), fIS); 

,並移動到的FileInputStream for循環,並更改爲:

new FileInputStream(files); 
相關問題