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 :

probleme sur la date de creation d'un fichier


Sujet :

C#

  1. #1
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut probleme sur la date de creation d'un fichier
    Hello

    J'ai une application genre "backup" qui creer des fichiers, les sauvegardent(copy+delete) puis les recrees.

    Mon soucis c'est que la date de creation ne change pas.

    Exemple :
    le 31/12
    Creation d'un fichier "toto.txt"
    le 02/01
    Copy du fichier vers "toto.bkp"
    Delete du fichier "toto.txt"
    Re creation du fichier "toto.txt"

    Au finial sur "toto.txt" la date de creation est le 31/12 et la date de derniere modification est le 02/01

    Cela viens de c# ou de Windows ?!?
    Comment regler ce probleme ?
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Re creation du fichier "toto.txt"
    A partir du fichier "toto.bkp" ?
    Si c'est le cas pour windows tu n'as fait que renommer, copier, et deplacer.
    Donc je pense que cela viendrais de windows qui référence je ne sais où que ce fichier à pour origine tel fichier crée à telle date.

    Si tu le recrée à partir de rien, peut être une ancienne référence non mis à jour par windows. Dans ce cas essaye en changeant le nom.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  3. #3
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Oui c'est en recreant un fichier.

    En gros on cree une nouvelle variable de type FileStream (ou StreamWriter) et on lui affecte le resultat de File.Create ou File.CreateText.

    Creer avec un nouveau nom marche, mais ce n'est pas la question, on souhaite conserver le meme nom

    Il existe bien sur des tas de solutions dont :
    - Changer la date de creation
    - Creer un nouveau nom puis le renomer/deplacer,
    - ...

    Mais rien de bien "propre".
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Pour faire des backup, je trouverais plus propre de copier le contenu dans un fichier temporaire et de le renommer ensuite après avoir supprimé l'ancien, ça t'éviterais le problème de date de création et éviterais d'écraser le fichier précédent avant d'être sûr que le backup s'est bien passé (dans le fichier temporaire).
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  5. #5
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    +1

    Tu n'auras plus ton problème.
    Si malgrès tout il persiste, pense à un exorciste, ou un marabou africain. Il est clair que le malain a pris possession de l'ame de ton PC dans ce cas
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  6. #6
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    je comprends pas trop ou vous voulez en venir ?!?
    a un moment donné, on cree bien un ficher possedant le meme nom que l'ancien supprimé ... non ?

    Parce que c'est la que ca coince :p
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  7. #7
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    La méthode proposé par SaumonAgile :
    Tu pars du principe que tu as un fichier A.TXT.
    Tu crée B.TXT.
    Tu ouvres A.
    Tu ouvres B.
    Tu lis ligne par ligne A que tu copie dans B. (c'est mieux pour le buffer que de lire d'un coup tout le fichier )
    Tu supprimes A.
    Tu renommes B en A.

    Et normalement ton nouveau A.TXT à la date de création de B.TXT
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  8. #8
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Ouaip mais si je renome B en A alors en fait le nouveau A est egal a l'ancien A

    Disons que c'est ok jusqu'a ce uq'on suprime A.
    LA je souhaite recreer un nouveau A vide, qui aurait la date de creation immediate et non pas celle de l'ancien A (copié dans B)

    D'autre part, la copie de A dans B n'est pas touché par le tests sur la date de creation.

    donc en resumé, pour recreer le fichier A en fait il faudrais que je cree un fichier C qui sera renomé en A .... sauf que la encore, si je suis obligé de changer de noms a chaques fois pour eviter de retomber sur un fichier C qui a deja ete cree ....

    en fait j'aimerais surtout comprendre pourquoi et ce qui fait que la date ne change pas.
    Ca me permettra de mieux prevoir quand et comment ca va planter dans mes prochais progs.
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  9. #9
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Bah cela me semble être du référencement windows.
    A partir du moment où tu crée A, je pense que si tu copie une sauvegarde quelque part, il garde la date de creation en référence.
    Et donc si tu crées un autre fichier du même nom, il lui réafecte la date.
    Peut être une question de temps aussi.
    Avec une pause de quelque seconde peut être que ....

    Sinon je ne vois pas le problème lorsque tu dit cela :
    Ouaip mais si je renome B en A alors en fait le nouveau A est egal a l'ancien A

    Disons que c'est ok jusqu'a ce uq'on suprime A.
    LA je souhaite recreer un nouveau A vide, qui aurait la date de creation immediate et non pas celle de l'ancien A (copié dans B)
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  10. #10
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    j'ai pensé a un truc comme ca ... mais en relancant l'applciation dans le temps (et d'un jour a l'autre) meme probleme .....
    A croire qu'il garde quelque part une date de creation par fichier, de maniere a la restaurer chaque fois qu'on recree un fichier a un endroit ou il a deja ete cree .....
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  11. #11
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    REmarque important : En mode Debug, la date de creation est bien changé a chaques fois !!
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  12. #12
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Tu vérifie comment le changement de date de création ?
    Sur le fichier lui même via windows ?
    Dans ce cas fais bien tu F5 à chaque fois avant de constater la date ?

    Vérifies tu de la même façon en mode debug ou release ?
    Est ce par un appelle à la méthode qui te retourne la date de création ?
    Dans ce cas esseayes en vérifiant sous windows.

    LA je souhaite recreer un nouveau A vide, qui aurait la date de creation immediate et non pas celle de l'ancien A (copié dans B)
    Tu crée B vide et que tu renomme A.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  13. #13
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    C'est fou mais je comprend pas pourquoi les gens se prennent la tête quand un truc de précis ne marche pas est-ce moi qui suis bizarre ?
    Si la date de création ne change pas et que tu veux la changer :
    Tu crées un objet FileInfo sur ce fichier, tu fait ce que tu veux notamment via la méthode Create ou Open de ce FileInfo qui permet d'obtenir un flux vers ce fichier, et ensuite tu définis la valeur DateTime.Now aux propriétés CreationTime et LastWriteTime ...

  14. #14
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Mouais, mais c'est un moyen de contourner l'obstacle, tu ne le franchis pas vraiment. Tu prends juste un chemin détourné.
    Hé puis il y a ce qui aime se prendre la tête
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  15. #15
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par ced600 Voir le message
    Mouais, mais c'est un moyen de contourner l'obstacle, tu ne le franchis pas vraiment. Tu prends juste un chemin détourné.
    Mais au final l'objectif est atteind ... regarde la rivière : elle prend toujours le chemin le plus facile mais au bout du compte elle arrive à la mer
    L'objectif en programmation n'est-il pas de faire la fonctionnalité sans crash ?

  16. #16
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Mais au final l'objectif est atteind ... regarde la rivière : elle prend toujours le chemin le plus facile mais au bout du compte elle arrive à la mer
    En fait on peu voir les choses un peu autrement.
    Là tu faisais allusion au contournement d'un obstacle par la rivière pour continuer son chemin.
    En fait je vois les choses de façon un peu plus complexe (hé oui j'y peu rien, cela doit être génétique ) :
    Lorsque la rivière arrive devant un obstacle :
    Si le "coût" pour franchir l'obstacle est plus faible que le débis, alors elle va tout droit (une pierre sur le chemin d'un rivière ne fait pas le poid en général face au débit) et elle engloutis l'obstacle.
    Si ce "coüt" est plus élevé que le débis, alors elle contourne l'obstacle (la rivière ne s'arrête pour taillader au burrin un gros rocher )

    Du moins elle contourne l'obstacle uniquement tant que les pressions maintenues constantes sur celui-ci sont trop faible pour faire céder l'obstacle.
    En effet un gros rocher qui a provoquer le contourne ment de la rivière, subis une grosse érosion de la part de la rivière et un jour cédera.
    (bon il peu y avoir un nouvelle obstacle apparaissant avant le rocher (un barrage) et sauvant le rocher )

    Donc en bref la rivière contourne les obstacles qu'elle ne peu surmonter. Mais elle conserve une pression constante dessus, jusqu'à ce qu'elle puisse le surmonter. Elle n'abandonne jamais et le fait à son rythme.

    un vrai modèle cette rivière

    Au final, Clorish, je te conseille de mettre en place un solution de contournement si tu considère ne pas pouvoir surmonter l'obstacle dans les délais qui te sont donné.
    Puis maintiens une pression constante sur celui, en essayant lorsque tu as du temps de le surmonter.
    Et lorsque tu y arriveras tu pourras enfin aller tout droit et ne plus prendre des chemins détournés.


    Au final je conseille au manager de dire à leur nouvelle recrue de prendre en modèle la rivière.
    Ils seront d'accord, car c'était leur idole lorsqu'ils étaient étudiant. ils révaient tous de suivre leur cours sans quitter leur lit.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  17. #17
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    bien vu CED600 !!

    Je suis d'accord avec toi et c'est d'ailleur ce qui est fait.

    J'ai bien vu la solution du changement manuel de la date de creation, qui permet de maniere propre de palier au probleme.

    Apres, meme si le probleme est temporairement reglé pour continuer le travail, j'aime bien continuer a chercher le pourquoi du comment.
    Ce n'est pas parce que le probleme est reglé au temps X que en X+N il ne reviendra pas.
    Le fait de savoir quel est l'origine de ce probleme permet de prevoir ce genre de plantage et anticiper les bugs

    Sinon pour en revenir au probleme : Je n'ai pas fait F5 en effet, mais je teste la date via l'explorateur (et par code aussi vu que c'est la que le bug s'est produit). Et ce, de la meme facon que ce soit en mode debug ou en mode normal.
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

Discussions similaires

  1. Probleme sur les dates/format
    Par cott333 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/02/2012, 04h00
  2. Réponses: 1
    Dernier message: 20/12/2007, 14h34
  3. Date de Création d'un fichier
    Par argoet dans le forum Linux
    Réponses: 3
    Dernier message: 12/06/2006, 11h45
  4. MS Access et TQuery (probleme sur les dates)
    Par Djob dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/06/2004, 14h57
  5. Date de création d'un fichier
    Par cap38 dans le forum Linux
    Réponses: 14
    Dernier message: 28/04/2004, 14h06

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