none
Retoucher la date d'un fichier RRS feed

  • Question

  • Bonjour,

    je suis sur que cela doit être trivial et que je passe à coté mais je pose quand même la question:

    Je souhaite retoucher la date de modification d'un fichier, pour une question de synchro entre les fichiers serveurs et locaux. Je sais la lire avec un code qui ressemble à ça:

                            basicProperties = await fichier.GetBasicPropertiesAsync();
                            dateModifie = basicProperties.DateModified.ToUniversalTime();

    Comment je doit faire?


    JMK

    vendredi 20 juin 2014 10:37

Réponses

  • Bonjour,

    j'ai profité du week-end pour aller voir les forums US. Alors le fait est que c'est : PAS POSSIBLE!

    L'idée c'est que l'application tablette est dans un espace fermé. Donc inutile de modifier les fichiers. Sauf que je fais confiance aux petits malins pour aller modifier ces fichiers.

    Mon idée de base sur la version Desktop était de synchroniser les dates de modification afin de détecter une mise à jour ET vérifier qu'un petit malin n'a pas été retoucher le fichier en local. Si je vérifie l'antériorité de la modification, rien ne me garantie qu'après ma mise à jour un programme ou un hacker ne vienne modifier mes données a postériori.

    J'ai été voir du coté de l'objet StorageFile.IsEqual mais cela ne vérifie seulement que le Path est le même. Rien ne garantie d'avoir le même fichier sur le serveur et le poste.

    Donc aujourd'hui je n'ai pas de solution simple. Je vais développer un petit module pour gérer ça à la main.


    JMK

    lundi 23 juin 2014 07:44

Toutes les réponses

  • Bonjour,

    Il vous suffit de faire quelque chose du genre

    string path=@"c:\monRepertoire\doc.txt";
    File.SetLastWriteTime(path, new DateTime(2000, 1, 1));
    

    Bien cordialement,

    Fabrice JEAN-FRANCOIS

    vendredi 20 juin 2014 12:35
  • Oui,

    j'utilise ce code avec la variante UTC pour éviter les timezones:

    File.SetLastWriteTimeUtc(cheminData + telecharge.nom, OutilsClient.StringToDate(telecharge.date));

    Mais c'est sur ma version Windows desktop! Je n'ai pas trouver l'équivalent en WinRT et l'objet StorageFile ne semble pas être en capacité de modifier les dates. Les propriétés semble être en lecture seule.
    Alors je cherche comment faire pour traduire mon code.

    Une idée?


    JMK

    vendredi 20 juin 2014 14:18
  • Salut,

    Voici une autre approche qui pourrait faire l'affaire...
    Dépendamment de la manière dont tu références tes fichiers, tu peux ajouter un attribut du style timestamp, qui prendra la date de la dernière modification que tu devras considérer au moment de ta synchro...
    Il te sera ainsi facile de modifier cette date à ta guise...

    En espérant que ça aidera,
    Christian H.

    The best is still to come ;)

    samedi 21 juin 2014 18:12
  • Bonjour,

    j'ai profité du week-end pour aller voir les forums US. Alors le fait est que c'est : PAS POSSIBLE!

    L'idée c'est que l'application tablette est dans un espace fermé. Donc inutile de modifier les fichiers. Sauf que je fais confiance aux petits malins pour aller modifier ces fichiers.

    Mon idée de base sur la version Desktop était de synchroniser les dates de modification afin de détecter une mise à jour ET vérifier qu'un petit malin n'a pas été retoucher le fichier en local. Si je vérifie l'antériorité de la modification, rien ne me garantie qu'après ma mise à jour un programme ou un hacker ne vienne modifier mes données a postériori.

    J'ai été voir du coté de l'objet StorageFile.IsEqual mais cela ne vérifie seulement que le Path est le même. Rien ne garantie d'avoir le même fichier sur le serveur et le poste.

    Donc aujourd'hui je n'ai pas de solution simple. Je vais développer un petit module pour gérer ça à la main.


    JMK

    lundi 23 juin 2014 07:44