Page 1 sur 1

[RES]Connaitre la taille transférée pendant le transfert ftp

Publié : jeu. 28/mars/2013 11:38
par omega
Bonjour à tous

Est ce que c'est possible de connaître la taille d'un fichier transférée pendant le transfert ftp?
FTPprogress() nous permet de savoir que le transfert est en cours d'exécution (si différent de -3 et -2) mais on ne sait pas vraiment ce qui a été transféré et ce qui reste à transférer.

J'ai vu ça sur certains logiciels ftp, donc c'est possible mais peut être avec un autre langage (le C++ je suppose) ou à l'aide d'une API windows en Pb??...

Merci

Re: Connaitre la taille transférée pendant le transfert ftp

Publié : jeu. 28/mars/2013 11:43
par falsam
Bonjour Omega. Regarde bien l'aide :)

PS : Place le curseur d'édition sur FTPProgress et touche F1 pour avoir l'aide.

Re: Connaitre la taille transférée pendant le transfert ftp

Publié : jeu. 28/mars/2013 12:33
par omega
Pourtant j'ai bien lu et relu tout ce qui concerne le ftp dans l'aide !

Je me demande comment se fait il que je n'ai pas lu cette partie (FTPprogress) je me suis contenté de lire les constantes possibles (en bas de l'aide) mais je n'ai pas lu le texte complet....

Merci pour cette bonne remarque

Re: Connaitre la taille transférée pendant le transfert ftp

Publié : jeu. 28/mars/2013 12:59
par falsam
Un code que j'ai simplifié au maximum.

Code : Tout sélectionner

EnableExplicit

Enumeration
  #Ftp
EndEnumeration

Global FtpUrl.s, FtpPort.i, FtpUser.s, FTPPassWord.s
Global InputFile.s, InputFileSize.i, FtpFile.s, FTPdirectory.s

InitNetwork()

;Renseignez vos identifiants ftp
FtpUrl = "?"
FtpPort = 21
FtpUser = "?"
FTPPassWord = "?"
FTPdirectory = ""

If OpenFTP(#Ftp, FtpUrl, FtpUser, FTPPassWord, #PB_Ignore, FtpPort)
  
  SetFTPDirectory(#Ftp, FTPdirectory)
  Debug GetFTPDirectory(#Ftp)
  
  InputFile = OpenFileRequester("Choose a file to send", "", "*.*", 0)
  Debug InputFile
  
  InputFileSize = FileSize(InputFile)
    
  FtpFile = GetFilePart(InputFile)
  Debug FtpFile
  
  If SendFTPFile(#Ftp, InputFile, FtpFile, #ASYNCH) ;En arriere plan
    
    Repeat 
      Select FTPProgress(#Ftp)
        Case #PB_FTP_Started ;Valeur -1
          Debug "Début du transfert"
        
        Case #PB_FTP_Finished ;valeur -3
          Debug "Transfert terminée"
          Break
          
        Case #PB_FTP_Error ;Valeur -2  
          Debug "Erreur durant le transfert du fichier " + FtpFile
          Break
         
        Default
          Debug "Il reste " + Str(InputFileSize - FTPProgress(#Ftp)) + " Octets à transférer"
          
      EndSelect  
      Delay(100)  
    ForEver  
    
  EndIf
  
  CloseFTP(#Ftp)
Else
  MessageRequester("Erreur", "Impossible de se connecter au serveur FTP")
EndIf

Re: Connaitre la taille transférée pendant le transfert ftp

Publié : jeu. 28/mars/2013 13:05
par omega
Merci pour cet exemple, je vais tester maintenant.

Re: Connaitre la taille transférée pendant le transfert ftp

Publié : jeu. 28/mars/2013 13:12
par falsam
omega a écrit :Merci pour cet exemple, je vais tester maintenant.
J'ai modifié le code en ajoutant une variable pour fixer le dossier de destination.