ディレクトリをローカル ディスクからサーバーにコピーする必要があります。ディレクトリには、多くのディレクトリ、サブディレクトリ、およびファイルが含まれています。(ディレクトリの階層ツリーを考えてください)。
1 つのファイルをコピーする例を次に示します。
public void saveFilesToServer() throws IOException {
FTPClient ftp = new FTPClient();
ftp.connect(ftp.foobar.com);
if (!FTPReply.isPositiveCompletion(ftp.getReplyCode())) {
ftp.disconnect();
log.fatal("FTP not disconnected");
}
ftp.login("foo", "qwerty");
log.info("Connected to server .");
log.info(ftp.getReplyString());
ftp.changeWorkingDirectory("test");
ftp.makeDirectory("somedir");
ftp.changeWorkingDirectory("somedir");
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
java.io.File srcFolder = new java.io.File(folderPath);
FileInputStream fis = new FileInputStream(srcFolder);
ftp.storeFile (fileName, fis);
ftp.disconnect();
log.info("FTP disconnected");
}
somedir
ここで、すべてのサブディレクトリとファイルを含むディレクトリ ( ) をコピーする必要がありますsomedir
。
アルゴリズムは再帰を使用する必要があると思います。誰かが方法を知っていますか?