我正在开发一个Android项目,需要暂停/恢复FTP下载。
以下是我用于FTP连接的代码:
ftpClient.setConnectTimeout(25000);
ftpClient.login("login", "password");
ftpClient.changeWorkingDirectory("/audio");
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
然后我开始下载:
OutputStream outputStream = new BufferedOutputStream(new FileOutputStream(localFile));
byte[] bytesArray = new byte[4096];
int bytesRead = -1;
totalRead = 0;
if (localFileSize > 0) {
ftpClient.setRestartOffset(localFileSize);
ftpClient.restart(localFileSize);
}
InputStream inputStream = ftpClient.retrieveFileStream(fileName);
while ((bytesRead = inputStream.read(bytesArray)) != -1) {
totalRead += bytesRead;
outputStream.write(bytesArray, (int) localFileSize, bytesRead);
}
success = ftpClient.completePendingCommand();
我尝试暂停使用abort
,如下所示:
if (ftpClient.abort()) {
//connection aborted!;
}
但似乎abort
在这里提到的有效下载时不起作用:https://issues.apache.org/jira/browse/NET-419
我有什么方法可以在Android中执行FTP下载的暂停/恢复?
答案 0 :(得分:0)
如果您确实只想暂停下载(与中止/重新连接/恢复相反),那么您需要做的就是暂时暂停写入数据连接流的while
循环。