0

java.util.zip.ZipEntry を使用してファイルを圧縮できることを見てきました。

私はそれを圧縮することができ、また、あるFTPの場所から別のFTPの場所に転送しています

 outStream.putNextEntry(new ZipEntry());
 while ((ByteRead = is.read(buf)) != -1) 
 {      
     outStream.write(buf, 0, ByteRead);
     ByteWritten += ByteRead;
 }

また、いくつかのメソッド FTP.sendCommand() があることも確認しました。しかし、それを使用してコマンドを送信して、ある FTP の場所にファイルを圧縮し、この方法を使用して別の場所にコピーする方法がわかりません。

誰かこれについて何か考えがありますか?

4

1 に答える 1

1

私はあなたが2つのステップでそれを達成すると思います:

  1. ファイルを圧縮して、最初のFTPの場所に書き込みます

    URL ftpLocation1 = new URL("ftp://url1");
    URLConnection ftpConnect1 = ftpLocation1.openConnection();
    OutputStream ftpOutStream1 = ftpConnect1.getOutputStream(); // To upload
    ftpOutStream1.putNextEntry(new ZipEntry());
    while ((ByteRead = is.read(buf)) != -1) {      
       ftpOutStream1.write(buf, 0, ByteRead);
       ByteWritten += ByteRead;
     }
    
  2. zipファイルをそのまま読み取り、2番目のFTPの場所に書き込みます

    InputStream ftpInputStream1 = ftpConnect1.getInputStream(); // To read back
    URL ftpLocation2 = new URL("ftp://url2");
    URLConnection ftpConnect2 = ftpLocation1.openConnection();
    OutputStream ftpOutStream2 = ftpConnect2.getOutputStream(); // To upload
    
    //read through ftpInputStream1 and write in ftpOutStream2 
    while ((ByteRead = ftpInputStream1.read(buf)) != -1) {      
       ftpOutStream2.write(buf, 0, ByteRead);
       ByteWritten += ByteRead;
     }
    
  3. 完了したら、すべてのストリームを閉じます

于 2012-10-11T18:42:53.073 に答える