【问题标题】:how to delete file from ftp server using java?如何使用java从ftp服务器中删除文件?
【发布时间】:2011-10-11 01:43:21
【问题描述】:

如何使用 java 程序从 ftp 服务器中删除文件? 我可以使用以下代码在 ftp 上成功上传文件:

public static void main(String[] args) throws IOException {
    // TODO Auto-generated method stub
    String s = "ftp://username:password@ftpclient: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");
}

但是我如何从这个 ftp 服务器上删除文件呢? 任何帮助将不胜感激......... 提前致谢

【问题讨论】:

    标签: java ftp ftp-client


    【解决方案1】:

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

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

    【讨论】:

    • +1 用于 javadoc 链接(加上你比我早 54 秒回答 :))
    • 感谢您的回答。但我正在寻找一种没有 ftpclient 的方法。任何帮助将不胜感激
    • 既然有许多现成的模块可以为您实现,为什么还要自己实现 FTP 协议?不要重新发明轮子。
    【解决方案2】:

    查看Apache commons-net。它有一个 FTP 客户端(以及其他东西)。

    【讨论】:

      【解决方案3】:

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

      String s = "ftp://username:password@ftpclient: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();
      

      【讨论】:

      • 代表你要删除的文件。
      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 2018-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多