2011-07-22 135 views
13

如何使用java程序从ftp服务器中删除文件? 我能够成功上传使用下面的代码上的FTP文件:从该FTP服务器如何使用java从ftp服务器中删除文件?

public static void main(String[] args) throws IOException { 
    // TODO Auto-generated method stub 
    String s = "ftp://username:[email protected]:21/text.txt;type=i"; 
    URL u = new URL(s); 
    URLConnection uc = u.openConnection(); 
    BufferedOutputStream bos = new BufferedOutputStream(uc.getOutputStream()); 
    bos.write(67); 
    bos.close(); 
    System.out.println("Done"); 
} 

但我怎么删除文件? 任何帮助将不胜感激......... 在此先感谢

回答

19

您可以使用Apache FTPClient在FTP上执行此操作和所有其他命令。 使用它是这样的:

... 
FTPClient client = new FTPClient(); 
client.connect(host, port); 
client.login(loginname, password); 
client.deleteFile(fileNameOnServer); 
client.disconnect(); 
... 
+1

+1对于javadoc链接(加上你在我之前回答了54秒:)) – pap

+0

感谢你的回答。但我正在寻找一种方法来做到这一点,而不需要ftpclient。任何帮助将不胜感激 – Shantanu

+0

为什么你想要自己实现FTP协议,当有许多预制模块为你做?不要重新发明轮子。 – pap

2

的FTP命令删除文件是RMD,我想你可以使用:

String s = "ftp://username:[email protected]:21/text.txt;type=i"; 
URL u = new URL(s); 
URLConnection uc = u.openConnection(); 
PrintStream ps = new PrintStream((uc.getOutputStream())); 
ps.println("RMD " + <myFile>.getPath()); 
ps.close(); 
+0

你的意思是什么 .getPath()??? – Shantanu

+0

代表您要删除的文件。 – chepseskaf

1

Java的URL和URLConnection不具备的资源支持删除。 (我甚至对上传作品感到惊讶)。

所以你要么必须使用FTP客户端库(如Apache Commons Net的FTPClient),要么必须自己实现FTP协议客户端的必要部分。

相关问题