Accueil > Forum > > > > Copie de fichier avec barre de progression
Copie de fichier avec barre de progression
dimanche 27 janvier 2002 à 00:16:02 |
Copie de fichier avec barre de progression

JMGR
|
Salut, Comment peut-on copier un fichier avec une barre de progression ?
|
|
dimanche 27 janvier 2002 à 10:57:05 |
Re : Copie de fichier avec barre de progression

MangaII
|
Salut ! Pour copier un fichier, tu as, en gros, 2 solutions ! soit tu utilise une fonction déjà existante (ex :les API windows) soit tu le fé toi même ! Si tu utilise une fonction existante, à moins qu'il y ai prévu un appel a une fonction Callback, tu pourra pas faire de barre de progression ! Par contre, si tu fé ton propre système de copie (et c pas bien compliqué), tu pourra y integrer tout ce que tu ve ! Pour copier un fichier, il fo ouvrir le fichier source, ouvrir le fichier destination, puis lire des blocs dans le source, et les ecrire dans le destination, et ce, jusqu'a la fin du fichier ! En gros, tu va utiliser des bloc de 1Ko (par exemple), ce qui fé que tu aura une boucle While, et a chaque passage dans la boucle, tu peu faire afficher la barre de progression ! Et voilà !
A+ NICO !
------------------------------- Réponse au message : -------------------------------
Salut, Comment peut-on copier un fichier avec une barre de progression ?
|
|
dimanche 27 janvier 2002 à 13:23:59 |
Re : Copie de fichier avec barre de progression

JMGR
|
Salut, Mais avec les API, il y a bien la fonction CopyFileEx, mais elle ne marche qu'avec Windows NT ! (J'ai Windows 98) On peut faire autrement ?
Sinon pour ton système de copie, c'est intéressant, mais c'est bien : FILE *fp,*fp2; char temp[255]="Vide"; for(int i=0;strcmp(temp,"");i++) { fscanf(fp,"%s",&temp); fprintf(fp2,"%s",temp); }
------------------------------- Réponse au message : -------------------------------
Salut ! Pour copier un fichier, tu as, en gros, 2 solutions ! soit tu utilise une fonction déjà existante (ex :les API windows) soit tu le fé toi même ! Si tu utilise une fonction existante, à moins qu'il y ai prévu un appel a une fonction Callback, tu pourra pas faire de barre de progression ! Par contre, si tu fé ton propre système de copie (et c pas bien compliqué), tu pourra y integrer tout ce que tu ve ! Pour copier un fichier, il fo ouvrir le fichier source, ouvrir le fichier destination, puis lire des blocs dans le source, et les ecrire dans le destination, et ce, jusqu'a la fin du fichier ! En gros, tu va utiliser des bloc de 1Ko (par exemple), ce qui fé que tu aura une boucle While, et a chaque passage dans la boucle, tu peu faire afficher la barre de progression ! Et voilà !
A+ NICO !
------------------------------- Réponse au message : -------------------------------
Salut, Comment peut-on copier un fichier avec une barre de progression ?
|
|
dimanche 27 janvier 2002 à 14:10:17 |
Re : Copie de fichier avec barre de progression

ADPro22
|
Pour Windows 98 ultilise la fonction CopyFile (inclure winbase.h) mais il n'y a pas de barre de progression...
BOOL CopyFile(
LPCTSTR lpExistingFileName, // adresse du nom du fichier source LPCTSTR lpNewFileName, // adresse du nom du fichier cible BOOL bFailIfExists // flag renvoyé si le fichier éxiste déjà );
------------------------------- Réponse au message : -------------------------------
Salut, Mais avec les API, il y a bien la fonction CopyFileEx, mais elle ne marche qu'avec Windows NT ! (J'ai Windows 98) On peut faire autrement ?
Sinon pour ton système de copie, c'est intéressant, mais c'est bien : FILE *fp,*fp2; char temp[255]="Vide"; for(int i=0;strcmp(temp,"");i++) { fscanf(fp,"%s",&temp); fprintf(fp2,"%s",temp); }
------------------------------- Réponse au message : -------------------------------
Salut ! Pour copier un fichier, tu as, en gros, 2 solutions ! soit tu utilise une fonction déjà existante (ex :les API windows) soit tu le fé toi même ! Si tu utilise une fonction existante, à moins qu'il y ai prévu un appel a une fonction Callback, tu pourra pas faire de barre de progression ! Par contre, si tu fé ton propre système de copie (et c pas bien compliqué), tu pourra y integrer tout ce que tu ve ! Pour copier un fichier, il fo ouvrir le fichier source, ouvrir le fichier destination, puis lire des blocs dans le source, et les ecrire dans le destination, et ce, jusqu'a la fin du fichier ! En gros, tu va utiliser des bloc de 1Ko (par exemple), ce qui fé que tu aura une boucle While, et a chaque passage dans la boucle, tu peu faire afficher la barre de progression ! Et voilà !
A+ NICO !
------------------------------- Réponse au message : -------------------------------
Salut, Comment peut-on copier un fichier avec une barre de progression ?
|
|
dimanche 27 janvier 2002 à 17:28:36 |
Re : Copie de fichier avec barre de progression

JMGR
|
Heu... Oui je connais... Et pour mon code, il est bon ?
------------------------------- Réponse au message : -------------------------------
Pour Windows 98 ultilise la fonction CopyFile (inclure winbase.h) mais il n'y a pas de barre de progression...
BOOL CopyFile(
LPCTSTR lpExistingFileName, // adresse du nom du fichier source LPCTSTR lpNewFileName, // adresse du nom du fichier cible BOOL bFailIfExists // flag renvoyé si le fichier éxiste déjà );
------------------------------- Réponse au message : -------------------------------
Salut, Mais avec les API, il y a bien la fonction CopyFileEx, mais elle ne marche qu'avec Windows NT ! (J'ai Windows 98) On peut faire autrement ?
Sinon pour ton système de copie, c'est intéressant, mais c'est bien : FILE *fp,*fp2; char temp[255]="Vide"; for(int i=0;strcmp(temp,"");i++) { fscanf(fp,"%s",&temp); fprintf(fp2,"%s",temp); }
------------------------------- Réponse au message : -------------------------------
Salut ! Pour copier un fichier, tu as, en gros, 2 solutions ! soit tu utilise une fonction déjà existante (ex :les API windows) soit tu le fé toi même ! Si tu utilise une fonction existante, à moins qu'il y ai prévu un appel a une fonction Callback, tu pourra pas faire de barre de progression ! Par contre, si tu fé ton propre système de copie (et c pas bien compliqué), tu pourra y integrer tout ce que tu ve ! Pour copier un fichier, il fo ouvrir le fichier source, ouvrir le fichier destination, puis lire des blocs dans le source, et les ecrire dans le destination, et ce, jusqu'a la fin du fichier ! En gros, tu va utiliser des bloc de 1Ko (par exemple), ce qui fé que tu aura une boucle While, et a chaque passage dans la boucle, tu peu faire afficher la barre de progression ! Et voilà !
A+ NICO !
------------------------------- Réponse au message : -------------------------------
Salut, Comment peut-on copier un fichier avec une barre de progression ?
|
|
dimanche 27 janvier 2002 à 20:19:28 |
Re : Copie de fichier avec barre de progression

MangaII
|
A priori, ton code est pas génial ! Si tu ve copier des fichier, ce ne sont pas forcéments des fichiers de texte, et dans ce cas, tu est obligé de lire des octets en mode bianire, et pas des chaines de caractère ! Déjà il fo ouvrir les fichier en binaire (voir la doc de fopen ) ensuite, utilise fread, et fwrite pour lite et écrire des bloc de donnée (en nombre d'octets) ! tu pe lire 1 octet, puis ecrire 1 octet !
Ensuite, ta boucle FOR est inutilisable dans ton cas ! il te fo utiliser un while, et pour tester si tu est a la fin du fichier, utilise feof !
Voilà, avec tout ca, tu as toutes les fonctions pour créé ta propre fonction copier !
a+ NICO
------------------------------- Réponse au message : -------------------------------
Heu... Oui je connais... Et pour mon code, il est bon ?
------------------------------- Réponse au message : -------------------------------
Pour Windows 98 ultilise la fonction CopyFile (inclure winbase.h) mais il n'y a pas de barre de progression...
BOOL CopyFile(
LPCTSTR lpExistingFileName, // adresse du nom du fichier source LPCTSTR lpNewFileName, // adresse du nom du fichier cible BOOL bFailIfExists // flag renvoyé si le fichier éxiste déjà );
------------------------------- Réponse au message : -------------------------------
Salut, Mais avec les API, il y a bien la fonction CopyFileEx, mais elle ne marche qu'avec Windows NT ! (J'ai Windows 98) On peut faire autrement ?
Sinon pour ton système de copie, c'est intéressant, mais c'est bien : FILE *fp,*fp2; char temp[255]="Vide"; for(int i=0;strcmp(temp,"");i++) { fscanf(fp,"%s",&temp); fprintf(fp2,"%s",temp); }
------------------------------- Réponse au message : -------------------------------
Salut ! Pour copier un fichier, tu as, en gros, 2 solutions ! soit tu utilise une fonction déjà existante (ex :les API windows) soit tu le fé toi même ! Si tu utilise une fonction existante, à moins qu'il y ai prévu un appel a une fonction Callback, tu pourra pas faire de barre de progression ! Par contre, si tu fé ton propre système de copie (et c pas bien compliqué), tu pourra y integrer tout ce que tu ve ! Pour copier un fichier, il fo ouvrir le fichier source, ouvrir le fichier destination, puis lire des blocs dans le source, et les ecrire dans le destination, et ce, jusqu'a la fin du fichier ! En gros, tu va utiliser des bloc de 1Ko (par exemple), ce qui fé que tu aura une boucle While, et a chaque passage dans la boucle, tu peu faire afficher la barre de progression ! Et voilà !
A+ NICO !
------------------------------- Réponse au message : -------------------------------
Salut, Comment peut-on copier un fichier avec une barre de progression ?
|
|
lundi 28 janvier 2002 à 08:14:11 |
Re : Copie de fichier avec barre de progression

JMGR
|
Ok merci !
------------------------------- Réponse au message : -------------------------------
A priori, ton code est pas génial ! Si tu ve copier des fichier, ce ne sont pas forcéments des fichiers de texte, et dans ce cas, tu est obligé de lire des octets en mode bianire, et pas des chaines de caractère ! Déjà il fo ouvrir les fichier en binaire (voir la doc de fopen ) ensuite, utilise fread, et fwrite pour lite et écrire des bloc de donnée (en nombre d'octets) ! tu pe lire 1 octet, puis ecrire 1 octet !
Ensuite, ta boucle FOR est inutilisable dans ton cas ! il te fo utiliser un while, et pour tester si tu est a la fin du fichier, utilise feof !
Voilà, avec tout ca, tu as toutes les fonctions pour créé ta propre fonction copier !
a+ NICO
------------------------------- Réponse au message : -------------------------------
Heu... Oui je connais... Et pour mon code, il est bon ?
------------------------------- Réponse au message : -------------------------------
Pour Windows 98 ultilise la fonction CopyFile (inclure winbase.h) mais il n'y a pas de barre de progression...
BOOL CopyFile(
LPCTSTR lpExistingFileName, // adresse du nom du fichier source LPCTSTR lpNewFileName, // adresse du nom du fichier cible BOOL bFailIfExists // flag renvoyé si le fichier éxiste déjà );
------------------------------- Réponse au message : -------------------------------
Salut, Mais avec les API, il y a bien la fonction CopyFileEx, mais elle ne marche qu'avec Windows NT ! (J'ai Windows 98) On peut faire autrement ?
Sinon pour ton système de copie, c'est intéressant, mais c'est bien : FILE *fp,*fp2; char temp[255]="Vide"; for(int i=0;strcmp(temp,"");i++) { fscanf(fp,"%s",&temp); fprintf(fp2,"%s",temp); }
------------------------------- Réponse au message : -------------------------------
Salut ! Pour copier un fichier, tu as, en gros, 2 solutions ! soit tu utilise une fonction déjà existante (ex :les API windows) soit tu le fé toi même ! Si tu utilise une fonction existante, à moins qu'il y ai prévu un appel a une fonction Callback, tu pourra pas faire de barre de progression ! Par contre, si tu fé ton propre système de copie (et c pas bien compliqué), tu pourra y integrer tout ce que tu ve ! Pour copier un fichier, il fo ouvrir le fichier source, ouvrir le fichier destination, puis lire des blocs dans le source, et les ecrire dans le destination, et ce, jusqu'a la fin du fichier ! En gros, tu va utiliser des bloc de 1Ko (par exemple), ce qui fé que tu aura une boucle While, et a chaque passage dans la boucle, tu peu faire afficher la barre de progression ! Et voilà !
A+ NICO !
------------------------------- Réponse au message : -------------------------------
Salut, Comment peut-on copier un fichier avec une barre de progression ?
|
|
mercredi 13 octobre 2004 à 23:43:16 |
Re : Copie de fichier avec barre de progression

Gendal67
|
Essaie ça mon vieux :-)) :
#include <iostream.h>
using namespace std;
FILE *fp, *fq; int carac;
if ((fp = fopen(fichier_source, "rb")) != NULL) if ((fq = fopen(fichier_destination, "wb")) != NULL) {
while ((carac = fgetc(fp)) != EOF) fputc(carac, fq);
fclose(fp); fclose(fq); }
Et vala, si t'a d'autres questions, n'hésite pas... :-))
Genda67, à votre service !
|
|
vendredi 29 juillet 2005 à 14:09:24 |
Re : Copie de fichier avec barre de progression

moi411
|
Bonjour à tous,
J'essaye moi aussi de faire une barre de progression en langage C
Mais j'ai un petit soucis: comment faire pour connaitre la taille
d'un répertoire (parce que je suppose que la copie ou la suppression de
fichiers
se fait grace à la taille et non avec le nombre de fichiers...).
J'ai essayé bêtement avec une fonction fopen puis en binaire comme
on le dit plus haut: (source=fopen("c:\\nomdurepertoire","rb+");) mais
ca ne marche pas.
J'ai ensuite essayé avec le nombre de fichiers mais même problème:
comment faire, cette fois,pour trouver le nombre de fichiers du
répertoire... Pour ne pas dire d'avoir perdu mon temps j'ai fait un
programme dans lequel je doit rentrer le nombre de fichier à copier au
clavier (le programme marche mais la barre en elle-même a un problème je n'arrive pas à le résoudre):
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
int x=954783; //nombre de fichiers à copier
int i=0; //indique quel fichier est copié
int j; //pourcentage de fichiers copiés
printf("Entrez le nombre de fichier a copier: ");
scanf("%d",&x);
while(i<=x)
{ j=(i*100)/x;
if((j%5)==0)
{
gotoxy(5,15);
printf("%d%",j);
}
i++;
}
printf("\n\n");
system("pause");
}
Pour faire court ma principale question est: comment on fait pour
se déplacer dans un répertoire, en trouver le nombre de fichiers etc.
en langage C?
Voila j'espère que je me suis bien expliqué et si qqun peut m'aider je le remercie d'avance. A plus tard.
|
|
Cette discussion est classée dans : fichier, copie, barre, progression
Répondre à ce message
Sujets en rapport avec ce message
Thread - Barre de progression (chargement de gros fichier) [ par jockos ]
Bonjour, j'ai une fonction qui sert à charger un fichier et à le traiter en mémoire bloc par bloc (afin de traiter des fichiers de plusieurs centaines
probleme de copie de fichier en C [ par jbdmk4 ]
Bonjour tout le monde, j'ai un problème d'écriture de fichier. J'envoie un fichier quelquonque d'un client java sur un serveur C bit a bit, a première
copie de fichier (MFC) [ par michelmt ]
Salut,voici mon prob,j'ai mis un bouton dans mon programvc++6 (MFC) pour faire une copiedu tous les dossier qu'il a écriton me dit de prendre (CopyFil
Barre de progression sous UNIX avec Xlib [ par dardarmotus ]
dardarmotus Bonjour à tous,Petite question:Y-a-til un moyen de programmer en C sous UNIX une barre de progression toute simple dans une fenêtre Xwindo
Copie de fichier... [ par cyber_securite ]
Bonjours... Voila, je débute en c++ et je me trouves confronté à un souci de taille. J' aimerai que mon programme se copie lui même dans un autre répe
[C++]Copie de masse de tout ce qu'il y a dan sun dossier [ par alexou09 ]
Bonjour a tous! J'ai fait un programme permettant de copier un fichier. J'aimerai l'ameliorer de fasson a ce qu'il detecte tout les fichier d'un dossi
Fichier en cours de copie [ par stpvb ]
Salut, Je cherche une méthode pour vérifier qu'un fichier est bien complet avant de lui faire subir un traitement... je pense en particulier à
Barre de progression avec vc++ [ par cyberteche ]
Est ce que qqn sait comment on gère une barre de progression (inserer dans une boite de dialogue) ...... pour un prog créé avec l'appWizard de vc++6..
Remplacer la copie de fichier de Windows [ par MangaII ]
Salut !Quelqu'un sorai-t-il comment on pe remplacer la fonction de copie de fichier sous Windows par un programme maison !Mon but est d'optimiser la c
Remplacer la fonction de copie de fichier sous Windows [ par MangaII ]
Salut !Quelqu'un sorai-t-il comment on pe remplacer la fonction de copie de fichier sous Windows par un programme maison !Mon but est d'optimiser la c
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|