Bonjour j'ai developer une application qui telecharge des fichier sur un serveur ftp et j'aimerai associer a ce telechargement une barre de progression mais je ne sait vraiment pas comment faire.Pourriez-vous m'aider.
Merci d'avance
Bonjour j'ai developer une application qui telecharge des fichier sur un serveur ftp et j'aimerai associer a ce telechargement une barre de progression mais je ne sait vraiment pas comment faire.Pourriez-vous m'aider.
Merci d'avance
Tu as écrit toi-même le code du FTP, ou tu as utilisé une librairie toute faite ? Si tu as utilisé une librairie, laquelle ?
Mac LAK.
___________________________________________________
Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.
Sources et composants Delphi sur mon site, L'antre du Lak.
Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.
Rejoignez-nous sur : ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Le groupe de travail ICMO
Bonjour,
Je voudrais ajouter comme questions:
- C'est en console ou en utilisant une bibliothèque pour l'interface ? ( si bibliothèque, laquelle ? )
- C'est pour quel système d'exploitation ?
Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi
Ma page sur DVP
Mon Portfolio
Qui connaît l'erreur, connaît la solution.
J'utilise la librairie wininet pour le ftp.
MFC visual studio
Windows vista
Aprés plusiuers recherche rien n'y fait je n'arrive toujours a faire en sorte que ma barre de progression avance en fonction d'un telechargement FTP.
Un peu d'aide SVP
Tu ouvres le fichier à télécharger avec FtpOpenFile puis tu fais une boucle avec InternetReadFile tant que le fichier n'a pas été entièrement téléchargé. A chaque itération, tu fais avancer le progress bar. A la fin du téléchargement, fermer le handle du fichier avec InternetCloseHandle.
Merci
Bonjour j'ai essayer se que m'as dit melem
Mais cela ne marche pas pourriez vous m'aider merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 FtpOpenFile(hFTPSession,existFileV2,GENERIC_READ,FTP_TRANSFER_TYPE_BINARY,NULL); while(Return != 1) { Return = InternetReadFile(hFTPSession,Buf,sizeof(existFileSAPEL),0); ProgressBar++; MyBar.SetPos(ProgressBar); }
Juste une modification au niveau du code le probleme reste le meme merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Return1 = FtpOpenFile(hFTPSession, existFileSAPEL, GENERIC_READ, FTP_TRANSFER_TYPE_BINARY ,NULL); buf = new char[(size_t)Return1]; size = FtpGetFileSize(Return1, NULL); for(ProgressBar = 0;ProgressBar<size;ProgressBar++); { Return = InternetReadFile(Return1,buf,size,&reste); ProgressBar++; MyBar.SetPos(ProgressBar); }
Ceci marche :
Améliore la robustesse du programme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 #include <windows.h> #include <wininet.h> #include <iostream> #include <cstdio> int main() { HINTERNET hInternet = InternetOpen(TEXT("Melem Downloader 0.0"), INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); HINTERNET hServer = InternetConnect( hInternet, TEXT("ftp-developpez.com"), INTERNET_DEFAULT_FTP_PORT, NULL, NULL, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0 ); HINTERNET hRemoteFile = FtpOpenFile( hServer, TEXT("/melem/tutoriels/langage-c/fichiers/fichiers.zip"), GENERIC_READ, FTP_TRANSFER_TYPE_BINARY, 0 ); HANDLE hLocalFile = CreateFile( TEXT("fichiers.zip"), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL ); BYTE lpBuffer[4096]; DWORD dwRemoteRead, dwLocalWritten; BOOL done = FALSE; while (!done) { BOOL success = InternetReadFile(hRemoteFile, lpBuffer, sizeof(lpBuffer), &dwRemoteRead); done = !success || dwRemoteRead == 0; if (!done) { WriteFile(hLocalFile, lpBuffer, dwRemoteRead, &dwLocalWritten, NULL); dwTotalWritten += dwLocalWritten; std::printf("\r%.0f effectue.", (100.0 * dwTotalWritten)/dwFileSize); std::cout << std::flush; } } std::cout << std::endl; CloseHandle(hLocalFile); InternetCloseHandle(hRemoteFile); InternetCloseHandle(hServer); InternetCloseHandle(hInternet); return 0; }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager