当前位置: 首页 > 知识库问答 >
问题:

使用Java从FTP服务器删除文件

龙景澄
2023-03-14

我正在写一个涉及多个客户的应用程序。一个客户端使用FTP将文件上传到服务器,然后另一个客户端下载并删除该文件。我使用FTP服务器作为一种中间人来交换信息,因为我不希望用户必须向前移植。我已经知道如何上传文件,但我不知道如何删除文件。使用FTP删除文件的命令是:

DELE <filename>

我试过这么做,但没有成功。以下是我尝试过的代码:

public static void deleteFile(String name) throws IOException
{
    URL url = new URL("ftp://a1111111:password@mywebsite.com/public_html/misc/screenshots/picture.png;type=i");
    BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(url.openConnection().getOutputStream()));
    writer.write("DELE picture.png");
    writer.flush();
}

我有一种感觉

我在这个网站上读到了关于类似问题的其他问题,所有的回答都告诉我使用图书馆。问题是,这些库中的大多数都是用纯Java编写的,因此该库的开发人员必须找到一种方法来完成我在没有库的情况下试图做的事情。我也想这么做。我不喜欢在我做的东西上附加我自己的文件以外的额外文件。所以,请不要告诉我使用图书馆——这不是我要找的。

如果您需要任何澄清,请询问!

编辑:如果我使用此代码接收响应:

    byte[] response = new byte[conn.getInputStream().available()];
    conn.getInputStream().read(response);
    System.out.println("Response: " + new String(response));

我的命令得到了回应:

Response: DELE test1.png

共有2个答案

龚勇锐
2023-03-14

你能用一些FTP客户端来做这个操作吗?

你可以试试http://commons.apache.org/net/api-3.1/org/apache/commons/net/ftp/FTPClient.html来自Apache commons net。它很容易使用。

咸浩初
2023-03-14

我认为您需要在两个单独的操作中进行检索和删除;我为FtpURLConnection找到的一些随机留档部分内容如下:

此类打开给定URL的FTP输入(或输出)流。它用作一次性FTP传输:

登录获取(或放置)文件断开连接

我在留档中没有看到任何允许删除文件的方法。

您可能希望使用URL机制来检索文件,但我会转而使用原始套接字来删除文件。创建到FTP命令端口的新连接,登录并手动发出DELE命令。如果这是您正在采取的唯一步骤,那么您可能可以避免执行相对较差的错误处理,并且可能只有两个read()请求,完成后只需向用户显示输出脚本。

这有点脏,但我完全理解不想携带一兆字节左右的额外源代码来实现道德上等同于“user foo\npass password\ndele/path/to/file\nlogout”| nc ftp.remote.example。com 21。

 类似资料:
  • 我正试图从ftp服务器检索一个文件,但我得到如下错误。请你帮帮我好吗 导入java.io.BufferedOutputStream; 导入java.io.file; 导入java.io.FileOutputStream; 导入java.io.IOException; 导入java.io.InputStream; 导入java.io.OutputStream; 导入java.text.DateFor

  • 上面使用与eodRepository(一个sftp文件夹)中的筛选器匹配的文件,但是,endpoint上的delete=true删除了sftp文件夹中的所有文件,而不仅仅是已经处理的文件。 有没有人知道我怎样才能确保只删除处理过的文件,而剩下的文件留在endpoint上?

  • 我正试图下载一些公共数据文件。我通过screensrap获取指向文件的链接,这些文件看起来都是这样的: 我在Requests library网站上找不到任何文档。

  • 我正在尝试从数据库中删除记录,以及从服务器中删除该记录的上载图像。我在控制器中有这个功能。 取消链接(C:\xampp\htdocs\larapro\public\newuploads\ 如果我使用 它显示: 解除关联(C: mpp\htdocs\larapro\Public\ewaddads{1470667358.png}):无效参数 我只是想知道为什么链接中的x和n丢失了。

  • 本文向大家介绍Java实现ftp上传下载、删除文件及在ftp服务器上传文件夹的方法,包括了Java实现ftp上传下载、删除文件及在ftp服务器上传文件夹的方法的使用技巧和注意事项,需要的朋友参考一下 一个JAVA 实现FTP功能的代码,包括了服务器的设置模块,并包括有上传文件至FTP的通用方法、下载文件的通用方法以及删除文件、在ftp服务器上传文件夹、检测文件夹是否存在等,里面的有些代码对编写JA

  • 我必须从FTP服务器下载最新文件。我知道如何从我的计算机下载最新文件,但我不知道如何从FTP服务器下载。 如何从FTP服务器下载最新文件? 这是我从电脑上下载最新文件的程序 好的,使用此代码我知道最后一个文件的日期,但我如何知道这个文件的名称?????????