2016-03-08 248 views
0

我在Windows 7機器上運行java 1.7.0_21,並嘗試刪除ftp ubuntu服務器上的文件。下面的代碼片斷顯示了我所做的。奇怪的是,該文件具有讀取,寫入和執行權限。也包含文件夾。當我問bPermisison我收到真實的,但我不能刪除此文件.... replyString給出錯誤550權限被拒絕。 相同的代碼剪切(和實現)在另一個ftp服務器上正常工作。 我搜索了很長時間,但我沒有找到任何提示。有人知道發生了什麼事嗎?FTPClient - 550權限被拒絕

感謝您的任何幫助。

String sFilePath = FileUtil.concatPath(sParamRemotedir, oFTPFile.getName(), "/");    
     boolean bPermission = FTPFile.hasPermission(FTPFile.USER_ACCESS, FTPFile.WRITE_PERMISSION); 
     boolean bDeleted = oFTPClient.deleteFile(sFilePath); 
     sReplyString = oFTPClient.getReplyString(); 
     if(bRetrieveOK && !bDeleted) { 
      m_oDialogError.show(ErrorText.ERROR_TRASYSTHREAD_FTPMOVE_DELETEERROR, oFTPFile.getName(), oFTPClient.getReplyString()); 
      bOK = false; 
     } 
+1

你有一個標準的FTP客戶端檢查服務器的行爲? – blafasel

+0

是的,我做到了。當我嘗試使用filezilla刪除ftp文件時,我無法將其與此用戶一起刪除。即使我用root登錄,也沒辦法。 conatining文件夾有權限777 ... – lmedici

+0

所以這絕對不是Java問題。您的FTP服務器配置必須存在問題。請看那裏。 – blafasel

回答

1

我也有類似的問題。一旦我做了以下事情,現在一切都好了。

對於FTP來說,文件和目錄的擁有者是不夠的。服務和FTP守護進程必須被正確配置來寫和創建文件等

在Ubuntu中: 編輯/etc/vsftpd.conf文件

sudo gedit /etc/vsftpd.conf 

而且在該行

#write_enable=YES 

刪除#前即

write_enable=YES 

最後重新啓動服務:(這是非常重要

sudo service vsftpd restart