Je souhaite créer une barre de progression pour un téléchargement FTP. Le serveur sur lequel je télécharge le fichier a tous ses répertoires et fichiers cachés. Je veux afficher la progression du téléchargement. Est-il possible que je puisse obtenir la taille du fichier? Voici mon code actuel:Obtenir FileSize avant InputStream
FTPclient = new FTPClient();
FTPclient.setListHiddenFiles(true);
FTPclient.connect(hostPart);
FTPclient.login(userName, passWord);
FTPclient.setFileType(FTP.BINARY_FILE_TYPE);
InputStream instream = FTPclient.retrieveFileStream(pathExcludingHostIncludingFirstSlash);
int l;
byte[] tmp = new byte[2048];
int updateCounter = 0;
int bytesDownloaded = 0;
while ((l = instream.read(tmp)) != -1) {
fos.write(tmp, 0, l);
bytesDownloaded+=2048;
updateCounter++;
if(updateCounter==3){
kilobytesDownloaded=(bytesDownloaded/1024);
publishProgress((String[])null);
updateCounter=0;
}
Votre code suppose que chaque lecture sera 2048 octets. Ce n'est pas garanti et la lecture finale ne le sera certainement pas à moins que vous n'ayez garanti que vos fichiers sont même des multiples de 2048 octets. Je recommanderais 'bytesDownloaded + = l'. –