繁体   English   中英

当ftp4j客户端下载文件时,FTP服务器死亡

[英]FTP server dies while ftp4j client downloads a file

我使用sauronsoftware.ftp4j.FTPClient从FTP服务器进行计划的文件下载。 我的问题是,客户端从客户端下载文件时,FTP服务器突然死了。 这就是我的工作:

       for (FTPFile remoteFile : remoteFiles) {

                String remoteFileName = remoteFile.getName();
                String localPath = ftpDir.getLocalPath() + remoteFileName;
                log.debug("Downloading remote file {} to local path {}", remoteFileName, localPath);
                try {
                    client.download(remoteFileName, new File(localPath));

                    if (!ftpDir.isLeaveFilesOnServer()) {
                        //Delete remote file
                        client.deleteFile(remoteFileName);                            
                    }

                } catch (IllegalStateException e) {

                    log.error("FTPException ",e);

                    fcr.addErrorFile(remoteFileName);

                } catch (IOException e) {

                    log.error("FTPException ",e);

问题是download(...)由单独的线程运行,而FTP服务器死后,该线程将继续像永远一样运行。 有没有办法解决此问题,还是应该使用另一个可以处理这种情况的FTP客户端?

我不确定您的问题是FTP连接突然突然中断还是无法正常运行,或者问题是否是主线程在下载文件之前完成了执行。 如果我们正在谈论第二种情况,那么也许您可以使用同一FTPClient类的另一种方法:

public void download(java.lang.String remoteFileName,
                 java.io.File localFile,
                 FTPDataTransferListener listener)

然后让主线程等待所有下载完成后再结束

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM