Bonjour,

J’explique mon projet.

Afin de superviser des logs sur des serveurs, je dois développer une petite application qui copie en local le fichier de log pour pouvoir afficher son contenu dans un textbox Multiline.

Mon code à cette tête
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
 
DirectoryInfo rep_log = new DirectoryInfo(Path_SRVC);
                foreach (FileInfo NextFile in rep_log.GetFiles("*Log.*"))
                {
// obtenir le tps de creation  
                  DateTime tmp_file = NextFile.CreationTime; 
// l’heure a l‘instant T de l’intérrogation                    
                  DateTime tmp_maintenant = DateTime.Now;
// Calcul du temps écoulé depuis la création
                  TimeSpan tmp_diff = tmp_maintenant.Subtract(tmp_file);
// Intérrogation du dernier fichier
                  if (tmp_diff.TotalMinutes < 20)
                  {
// Construction du chemin du fichier source
                        fichier_du_jour = NextFile.DirectoryName+"\\"+ NextFile.Name;
// Copie en local
                        File.Copy(fichier_du_jour, @"c:\log.temp",true);
                  }
                }

Actuellement mon programme fonctionne.

Le problème est qu’il affiche le resultat au bout de 2 min 50 sec (autant faire la manip a la main)
La raison est qu’il existe une multitude de fichier Log puisque le serveur en génère 4 par heure et qu’il garde un historique de 15 jours.

Ce qui fait que mon foreach passe en revue 1440 fichiers Log.
Je ne peux pas savoir exactement le nom de mon fichier puisque il est constitué de la manière suivante :
[Hostname]Log.[N° alèatoire * Tps process]

Donc je voulais savoir si il n’exitait pas une méthode plus rapide pour trouver mon dernier fichier généré ?

Je me tiens a votre disposition pour plus d’info.
Merci d’avance

PS : Je suis un beau novice dans le domaine de la prog.