いくつかのファイルが含まれ、ftpの場所にあるフォルダーをzip形式で圧縮したかったのです。FTPの場所でフォルダを圧縮する方法。
FTPClient ftp = new FTPClient();
ftp.connect(hostname);
ftp.login(user, pass);
ftp.changeWorkingDirectory("myfolder"); //I wanted to zip this "myfolder"
ありがとう。
ファイルのダウンロード、ローカルでの圧縮、アップロードのプロセスは思い通りに機能しますが、接続速度によっては時間がかかる場合があります。
マシンに SSH アクセスできる場合は、それを利用することを強くお勧めします。Java 用の SSH ライブラリ ( SSHJなど) を使用して、フォルダーに対して zip コマンドを実行できます。これにより、サーバーはローカルでファイルを圧縮するようになり、はるかに高速になります。
FTPはファイル転送のみを扱います。したがって、ファイルをダウンロードまたはアップロードすることはできますが、それ以上のことはできません。何かを圧縮したい場合は、それをコントロールのマシンにダウンロードして、そこで圧縮する必要があります。または、他のプロトコルを使用してマシン(ssh/リモートデスクトップ/telnet /実装するもの)にアクセスし、リモートでzipすることもできますが、FTP経由ではありません。
FTP プロトコル コマンドのリストを見てください。そこには ZIP に関する記述はありません。そしてFTPClient
、FTP プロトコルができることしかできません。あなたがしなければならないことは次のとおりです。
もちろん、これをコード/ライブラリの疑似 FTP コマンドでラップすることもできます。