Accueil > Forum > > > > Calculer le temps restant dans une copie de fichiers
Calculer le temps restant dans une copie de fichiers
mardi 19 décembre 2006 à 13:10:02 |
Calculer le temps restant dans une copie de fichiers

Siteauludo
|
Bonjour, J'ai fait un petit programme de backup et j'ai un léger problème : Je souhaite pouvoir afficher le temps restant (en gros bien sûr, comme pour les boîtes de dialogues de copie de fichiers de windows xp) avant la fin de la sauvegarde. En théorie, je calcule très précisément le temps de copie d'un fichier, et je fais : (Durée / TailleFichier) * TailleTotaleDeLaSauvegarde ça marche plutôt pas mal, mais bien sûr le temps restant change de manière intempestive (ce qui est normal, car ça dépend de la rapidité des gros fichiers par rapport aux plus petits, de l'occupation actuelle du processeur...). En bref, ça passe de 2943 minutes à -3 secondes sans autres, et ça repart à 3943324 heures... Es-ce que quelqu'un à une idée pour reproduire le système qui calcule le temps de windows XP ? Il n'est certe pas très constant non plus, mais il est beaucoup plus réalise (il passe de 20 minutes à 15 min, par exemple). Je suppose qu'il faudrait faire une moyenne, mais j'ai pas encore trouvé comment. Merci, Siteauludo PS : Comme c'est un programme de backup, il peut y avoir des énormes fichiers comme des minuscules, et le tout en grande quantité.
|
|
mardi 19 décembre 2006 à 14:07:17 |
Re : Calculer le temps restant dans une copie de fichiers

fcolo
|
Je pense à un tableau (tampon) dans lequel tu sauvegardes les x dernières mesures. Pour l'affichage, tu indiques la moyenne des mesures du tableau.
Tu conserve juste l'index en cours du tableau, que tu incrémente à chaque nouvelle mesure. Dès que tu atteint la fin du tableau, tu reparts au début.
A toi de faire varier la taille du tableau pour trouver une version assez stable (pas assez de points implique des changements brutaux et trop de points fera pas assez varier la moyenne).
f.colo
|
|
mardi 19 décembre 2006 à 16:16:35 |
Re : Calculer le temps restant dans une copie de fichiers

SharpMao
|
Hello,
Est-ce que tu peux nous mettre le bout de code ou tu fait le calcul, car si tu as -3s, ça veut dire qu'une des valeurs est négatives, et je ne vois pas comment ça peut arriver.
Amicalement, SharpMao
|
|
mercredi 20 décembre 2006 à 21:34:03 |
Re : Calculer le temps restant dans une copie de fichiers

Siteauludo
|
Bonjour,
tout d'abort, merci pour vos réponses, mais pour répondre à SharpMao, non, je n'ai pas le code, car vu qu'il ne marchait pas je l'ai supprimé, et maintenant que j'ai fini mon projet je souhaiterai le réajouter.
Mais le code était simple,
Je calculais le temps nécessaire à la copie
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
D1 = Datetime.Now.TimeOfDay;
File.Copy(x, y);
D2 = Datetime.Now.TimeOfDay;
TempsFichier = D2 - D1;
TempsRestant = (TempsFichier / TailleFichierEnOctets) * TailleTotalBackupEnOctets;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Voilà, en gros c'était ça.
J'ai aussi essayé avec les DateTime.Now.Ticks, mais impossible de trouver comment les reconvertir en secondes.
Merci,
Siteauludo
|
|
vendredi 22 décembre 2006 à 12:56:43 |
Re : Calculer le temps restant dans une copie de fichiers

Siteauludo
|
Personne ne peut me dire si le code est bon ?
Siteauludo
|
|
mercredi 27 décembre 2006 à 09:13:48 |
Re : Calculer le temps restant dans une copie de fichiers

SharpMao
|
Réponse acceptée !
Hello, Il y a un défaut à ton calcul, c'est que tu ne tiens compte que du dernier fichier copié. En tenant compte de l'ensemble des fichiers déjà copiés, tu auras une approximation plus précise. On peut dire que le temps restant est égal au temps effectué multiplié par le rapport entre la taille restante à copier et la taille déjà copiée. string [] FileList = Directory.GetFiles(Path1); long lngTotSize = 0; foreach (string strFile in FileList) { lngTotSize += newFileInfo(strFile).Length; }
DateTime dtStart = DateTime.Now; long lngCopiedSize = 0;
foreach (string strFile in FileList) { FileInfo fi = newFileInfo(strFile); File.Copy(strFile, Path.Combine(Path2, fi.Name)); lngCopiedSize += fi.Length; TimeSpan TimeDone = DateTime.Now - dtStart; TimeSpan TimeRemaining = newTimeSpan((long)(TimeDone.Ticks * ((double)(lngTotSize - lngCopiedSize) / lngCopiedSize))).ToString(); }Les typecasting et les parenthèses sont très importants, car si on ne convertit pas en double, une fois la moitié passée, le resultat de la division est inférieur à 1, donc 0 pour un type long. Il faut également faire attention, car même si les nombres sont des long (64 bits), si on les multiplie sans précautions, on peut rapidement arriver à des Overflow, et donc des nombres négatifs. J'espère que je ne me suis pas trompé dans mes calculs, et que ceci pourra t'aider. Amicalement, SharpMao
|
|
mercredi 27 décembre 2006 à 18:51:11 |
Re : Calculer le temps restant dans une copie de fichiers

Siteauludo
|
Merci beaucoup !
Désolé d'avance, je ne peux pas tester ça immédiatement, j'ai du désinstaller visual studio, et je ne pourrais pas l'installer avant plusieurs jours, mais ce code me paraît très bien !
Je posterai les résultats ici, au cas où d'autres personnes auraient le même problème que moi.
Encore merci,
Siteauludo
|
|
Cette discussion est classée dans : copie, temps, fichiers, calculer, restant
Répondre à ce message
Sujets en rapport avec ce message
Calcul de temps [ par TheGo ]
Salut ..Voila j'ai une fonction qui doit afficher le temps restant avant l'execution d'une action .Ma fonction arrive a afficher les secondes restante
Temps d'exécution d'1 aspx : comment le calculer ? [ par v1nce ]
Bonjour,J'ai des problème de perf dans l'exécution de mes scripts aspx sans que je sache si cela vient des scripts ou d'un problème réseau.Mon site es
Copie de fichiers fini?????? [ par yanis7518 ]
SalutComment puis-je savoir que la copie d'un fichiers(ou plusieur fichiers) est terminée avant de passer au traitement suivant<IMG
Création de dossiers et Copie de fichiers mp3 [ par Moomoon07 ]
Salut !Est ce quelqu'un pourrait me dire quelle classe utiliser pour créer des dossiers et copier des fichiers.Je voudrais aussi pouvoir classer les f
Ouvrir plusieurs fichiers en même temps à partir de l'exploreur [ par Cryel ]
Salut,Je développe un lecteur mp3 en C# et je veux faire en sorte que si je sélectionne plusieurs fichiers audio dans l'explorateur windows, je voudra
FileSystemWatcher et copie de nombreux fichiers [ par katwes ]
Bonjour,J'ai besoin de de scruter un répertoire dans l'attente de fichiers.J'utilise FileSystemWatcher pour détecter les changements dans ce répertoir
Copie de tout les répertoires et les fichiers [ par roumshi ]
Salut!Je voulais savoir comment on fait pour copier tout les repertoires et les fichiers d'un répertoire sélectionné!pour les fichier c'est bien file.
ProgressBar et copie de fichiers [ par geektoo ]
Salut à tous,J'ai un petit soucis avec une progressbar.Voila, je voudrais afficher la progression de copie de fichiers, mais part lot.Avec un foreach
Copie de fichiers d'un PC vers un autre PC [ par cybers7119 ]
Bonjour à tous,J'utilise actuellement Visual Studio pour un développement d'applications en C#.J'aimerais savoir s'il existe un moyen, en C#, de copie
Copie de Fichiers et tri alphabétique [ par thebigboss ]
J'ai deux questions. 1er: Comment trier par ordre alphabétique un tableau de string???? 2eme: <img
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|