IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

FileInfo : Fonction Compare


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Avatar de Spidermeu
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 147
    Par défaut FileInfo : Fonction Compare
    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

  2. #2
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Bonjour

    La fonction Compare de DateTime compare evidement une date complete
    La resolution du DateTime est de 100 nanosecondes

    Tu dois donc absolument t'assurer de comparer deux dates ayant la meme resolution et le cas echéant arrondir a la minute ou a la seconde !

  3. #3
    Membre confirmé
    Avatar de Spidermeu
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 147
    Par défaut
    Bonjour,
    merci pour votre réponse. Comment puis-je afficher ces dates jusqu'aux millisecondes ou aux nanosecondes ?
    Je n'ai pas trouvé la réponse sur MSDN.

  4. #4
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Il me semble que dans ton cas le problème ce n'est pas d'afficher mais de comparer dans une meme echelle

    Sinon regarde du cote des propriétés Ticks et milliseconds

Discussions similaires

  1. [V5] Fonction Comparer(chaine1, chaine2)
    Par Samemax dans le forum Deski
    Réponses: 3
    Dernier message: 27/03/2014, 16h45
  2. WebI Fonction comparer
    Par arni63 dans le forum Débuter
    Réponses: 1
    Dernier message: 30/01/2013, 15h47
  3. [VxiR2] fonction Comparer
    Par schkrumble dans le forum Deski
    Réponses: 1
    Dernier message: 12/05/2009, 13h32
  4. [Macro] problème fonction compare
    Par Tyler Durden dans le forum Macro
    Réponses: 7
    Dernier message: 09/07/2008, 22h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo