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 :

Comparer l'attribut 'Modifié le' d'un fichier


Sujet :

C#

  1. #21
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Et les fichiers pour lesquels tu as ce problème, si tu compares leurs dates visuellement (via la page de propriétés), ça correspond à ce que trouve le programme ? Parce qu'à mon avis le problème n'est pas dans le programme mais dans les fichiers eux-mêmes...

  2. #22
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Points : 706
    Points
    706
    Par défaut
    Citation Envoyé par Shypster Voir le message
    cela revient au même non ?
    Oublie je crois que c'était pas une bonne idée. Je sais même plus pourquoi j'ai dit ça

  3. #23
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 256
    Points : 62
    Points
    62
    Par défaut
    Citation Envoyé par harz62 Voir le message
    Oublie je crois que c'était pas une bonne idée. Je sais même plus pourquoi j'ai dit ça
    Pas de souci.
    http://stef-le-buffle.labrute.com

  4. #24
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 256
    Points : 62
    Points
    62
    Par défaut
    Citation Envoyé par harz62 Voir le message
    Oublie je crois que c'était pas une bonne idée. Je sais même plus pourquoi j'ai dit ça
    En dehors de ma boucle de copie, la comparaison marche sur les fichiers à problème. Par exemple, sur 100 fichiers que je copie d'un chemin réseau, les 20 premiers fichiers vont être recopiés même s'ils ont été copiés juste avant.

    J'ai recrée un appli toute bête, voici le code :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    private void button1_Click(object sender, EventArgs e)
    {
    // comparaison qui marche tout le temps sur un fichier qui pose problème
    if (File.GetLastWriteTime(@"\\192.3.4.17\e\TABLES\bio.tab") > File.GetLastWriteTime(@"\\192.3.4.250\share\Steph\Sauvegarde_AfterSav_test\TABLES\bio.tab")) ;
    {
    MessageBox.Show("true : plus r‚cent");
    }
    // procédure de copie où entre autre la même comparaison que ci-dessus ne marche pas
    CopyDir(textBox1.Text, textBox2.Text);
    }
     
    public static void CopyDir(string sourceDir, string destDir)
    {
    DirectoryInfo dir = newDirectoryInfo(sourceDir); if (dir.Exists)
    {
    string realDestDir;
    if (dir.Root.Name != dir.Name)
    {
    realDestDir = Path.Combine(destDir, dir.Name);
    if (!Directory.Exists(realDestDir))
    Directory.CreateDirectory(realDestDir);
    }
    else realDestDir = destDir;
    foreach (string d inDirectory.GetDirectories(sourceDir))
    CopyDir(d, realDestDir);
    foreach (string file inDirectory.GetFiles(sourceDir))
    {
    string fileNameDest = Path.Combine(realDestDir, Path.GetFileName(file));
    //if (!File.Exists(fileNameDest))
    // on v‚rifie si on doit copier le fichier
    if (File.GetLastWriteTime("@" + file) > File.GetLastWriteTime("@" + fileNameDest))
    {
    File.Copy(file, fileNameDest, true);
    MessageBox.Show(file + " " + File.GetLastWriteTime(fileNameDest).ToString());
    }
    }
    }
    }
    
    J'ai vérifié les propriétés d'un fichier à problème, celui copié et celui d'origine ont éxactement la même date de modification, seule la date de création change.
    http://stef-le-buffle.labrute.com

  5. #25
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 256
    Points : 62
    Points
    62
    Par défaut
    Bon j'ai enfin trouvé la cause du problème aprés moulte tests.
    Cela vient des fichiers qui ont été modifiés avant le changement en heure d'été, quand je regardais les propriétés du fichier j'avais la bonne heure mais dans le programme lors de ma comparaison avec 'GetLastWriteTime' il me trouvait l'heure avec un décalage de -1 ( heure d'hiver ) et donc inévitablement le programme recopiait les fichiers, ce qui explique que ma comparaison fonctionnait pour une partie des fichiers et l'autre non.

    Enfin, comment puis je prendre en compte heure d'hiver-heure d'été dans ma comparaison pour ne pas retomber sur ce problème ?

    Merci à tous pour votre participation.
    http://stef-le-buffle.labrute.com

  6. #26
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    En récupérant l'heure UTC :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File.GetLastWriteTimeUtc(path);

  7. #27
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 256
    Points : 62
    Points
    62
    Par défaut
    Citation Envoyé par tomlev Voir le message
    En récupérant l'heure UTC :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File.GetLastWriteTimeUtc(path);
    non l'heure utc me donne un décalage de heure windows -2 où je n'ai pas tout capté.

    edit : J'ai rien dit, tout marche nickel en utilisant l'heure UTC. Merci de m'avoir suivi dans mon problème c'est sympa.

    ++
    http://stef-le-buffle.labrute.com

  8. #28
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Shypster Voir le message
    non l'heure utc me donne un décalage de heure windows -2 où je n'ai pas tout capté.
    Et alors ? L'idée, c'est que ça te donne une heure "absolue", non liée au fuseau horaire de la machine. Du moment que l'heure est par rapport au même référentiel pour les 2 fichiers, la comparaison devrait marcher (tu n'as pas besoin de l'heure locale réelle)

  9. #29
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 256
    Points : 62
    Points
    62
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Et alors ? L'idée, c'est que ça te donne une heure "absolue", non liée au fuseau horaire de la machine. Du moment que l'heure est par rapport au même référentiel pour les 2 fichiers, la comparaison devrait marcher (tu n'as pas besoin de l'heure locale réelle)
    cf mon edit de mon post précédent.
    http://stef-le-buffle.labrute.com

  10. #30
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    C'est alors ?
    Pense à l'indiquer avec le bouton ci-dessous stp

  11. #31
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 256
    Points : 62
    Points
    62
    Par défaut
    Citation Envoyé par tomlev Voir le message
    C'est alors ?
    Pense à l'indiquer avec le bouton ci-dessous stp
    Pas vraiment, je suis en test. Mais finalement je ne suis pas certain que ça vienne vraiment de l'heure d'été, je regarde ...

    edit : dans ma comparaison avec le date/time UTC j'ai strictement les mêmes valeurs pour la source et la destination mais il me trouve la source supèrieure à la destination alors que c'est égal donc je suis en train de douter de ma comparaison.

    On peut bien comparer deux date/time comme ça, non ?
    http://stef-le-buffle.labrute.com

  12. #32
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Shypster Voir le message
    dans ma comparaison avec le date/time UTC j'ai strictement les mêmes valeurs pour la source et la destination mais il me trouve la source supèrieure à la destination

    Peut-être qu'à la seconde près, c'est égal, mais qu'il y a quelques ms d'écart ? Je ne sais pas trop avec quelle précision sont enregistrées les dates de modification des fichiers...

    Citation Envoyé par Shypster Voir le message
    On peut bien comparer deux date/time comme ça, non ?
    Ben en tous cas c'est ce que j'ai toujours fait...

  13. #33
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 256
    Points : 62
    Points
    62
    Par défaut

    Peut-être qu'à la seconde près, c'est égal, mais qu'il y a quelques ms d'écart ? Je ne sais pas trop avec quelle précision sont enregistrées les dates de modification des fichiers...
    Impossible, vu que je copie ce fichier, ils doivent être identiques. Je suis complètement perdu, j'ai tout essayé.

    Je vais me résigner à utiliser que la date, dommage.
    http://stef-le-buffle.labrute.com

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/01/2015, 07h29
  2. Lire et modifier les propriétés des fichiers Office
    Par SilkyRoad dans le forum Contribuez
    Réponses: 4
    Dernier message: 18/09/2006, 22h25
  3. Réponses: 7
    Dernier message: 07/01/2006, 15h18
  4. Réponses: 24
    Dernier message: 07/12/2005, 10h37
  5. [VB6] Ecrire/Modifier/Effacer ds un fichier text-4 Chs/Lg
    Par Jonathan_Korvitch dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 24/12/2002, 18h54

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