FTPClient - 550权限被拒绝

问题描述:

我在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

我也有类似的问题。一旦我做了以下事情,现在一切都好了。

对于FTP来说,文件和目录的拥有者是不够的。服务和FTP守护进程必须被正确配置来写和创建文件等

在Ubuntu中: 编辑/etc/vsftpd.conf文件

sudo gedit /etc/vsftpd.conf 

而且在该行

#write_enable=YES 

删除#前即

write_enable=YES 

最后重新启动服务:(这是非常重要

sudo service vsftpd restart