我正在编写一个涉及多个客户端的应用程序。一个客户端使用 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();
}
我有一种感觉,我提供的 <filename> 可能是错误的,因为我没有在路径中包含目录名称。但是,由于我在 URL 中明确告诉了文件的路径,所以我不太确定应该为 < 文件名 > 输入什么。
我已经阅读了该网站上关于与此非常相似的问题的其他问题,并且所有回复都告诉使用图书馆。问题是,这些库中的大多数都是用纯 Java 编写的,因此该库的开发人员必须想办法在没有库的情况下完成我想做的事情。我也想这样做。我不喜欢在我制作的东西上附加我自己以外的额外文件。所以请不要告诉我使用图书馆——这不是我要找的。
如果您需要任何澄清,请询问!
编辑:如果我使用此代码接收响应:
byte[] response = new byte[conn.getInputStream().available()];
conn.getInputStream().read(response);
System.out.println("Response: " + new String(response));
我的命令刚刚得到回应:
Response: DELE test1.png