複数のクライアントを含むアプリケーションを作成しています。1 つのクライアントが 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 でファイルのパスを明示的に指定したため、< ファイル名 > に何を入力すればよいかわかりません。
これと非常によく似た問題について、この Web サイトで他の質問を読みましたが、すべての回答でライブラリを使用するように指示されています。問題は、これらのライブラリのほとんどが純粋な Java で書かれているため、そのライブラリの開発者は、ライブラリなしで私がやろうとしていることを行う方法を見つけなければならなかったということです。私もそうしたいです。自分の作ったものに、自分のファイル以外のファイルを添付するのは好きではありません。ライブラリを使用するように言わないでください。それは私が探しているものではありません。
説明が必要な場合は、お尋ねください。
編集:このコードを使用して応答を受信した場合:
byte[] response = new byte[conn.getInputStream().available()];
conn.getInputStream().read(response);
System.out.println("Response: " + new String(response));
私のコマンドはエコーバックされます:
Response: DELE test1.png