Bonjour,
j'analyse un programme écrit par un ancien développeur de ma boite. On a des problèmes sur le traitement de fichiers (c'est la fonction principale du programme).
Le problème vient d'une condition que je ne comprends pas :
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 //Le programme liste l'ensemble des fichiers dans le répertoire de travail string[] strFichier = Directory.GetFiles(strRepTravail); int iFichier = 0; //Pour chacun des fichiers que le programme a trouvé dans le répertoire de travail while(iFichier < strFichier.Length) { TextReader filFichier; Info = new FileInfo(strFichier[iFichier]); int iDteTemp = DateTime.Compare(dteDernierFichier ,Info.LastWriteTime); // test si le fichier est à traiter if(iDteTemp < 0) { //TODO... }
Le code est très simple, on prend tous les fichiers d'un dossier et fichier par fichier, on compare la date de modification avec une date (dteDernierFichier).
Si dteDernierFichier est antérieure à la date de modification du fichier courant (Info.LastWriteTime), alors la fonction retourne un résultat inférieur à zéro, dans le cas inverse, la fonction retourne une valeur supérieure à 0. Si les deux dates sont égales, on retourne 0.
Nous avons fait des tests sur un ensemble de 5 fichiers pour lesquelles les dates de modification étaient toutes les même, à savoir le 08/10/2009 à 16:42:06.
Pour 4 de ces 5 fichiers, la fonction Compare nous a retourné -1 et pour le 5ème, elle nous a retourné 0.
Comment se fait-il qu'elle ne nous ait pas retourné 0 à chaque fois puisque les dates de modification étaient toutes les mêmes ?
Est-il possible que la fonction Compare se serve des millisecondes ?
Merci d'avance
Partager