我使用wxFTP制作简单的客户端,我一直坚持如何递归上传我的文件夹或从FTP服务器下载(这应该与删除相同)。我知道如何上传单个文件,制作FTP文件夹和删除文件。我将欣赏一篇教授这个概念的文章(不一定用C / C ++),或者有人可以帮助我。
代码示例将受到赞赏,但将其视为次要代码。 对不起,如果它已经被问及回答,我搜索并没有得到任何回答我问题的内容。
答案 0 :(得分:0)
我将回答this问题的代码翻译成C ++,就是这样。 既然So不接受答案并将其添加到评论中,我添加了我翻译成C ++的Java代码。我目前的代码太长了(因为它涉及的功能很少,因此我觉得不适合!)
public void saveFilesToServer(String remoteDest, File localSrc) 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(remoteDest);
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
try {
upload(localSrc, ftp);
}
finally {
ftp.disconnect();
log.info("FTP disconnected");
}
}
public void upload(File src, FTPClient ftp) throws IOException {
if (src.isDirectory()) {
ftp.makeDirectory(src.getName());
ftp.changeWorkingDirectory(src.getName());
for (File file : src.listFiles()) {
upload(file, ftp);
}
ftp.changeToParentDirectory();
}
else {
InputStream srcStream = null;
try {
srcStream = src.toURI().toURL().openStream();
ftp.storeFile(src.getName(), srcStream);
}
finally {
IOUtils.closeQuietly(srcStream);
}
}
}