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

Free Pascal Discussion :

Connaître la date de création d'un fichier


Sujet :

Free Pascal

  1. #1
    Membre habitué Avatar de vbcasimir
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    455
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 455
    Points : 168
    Points
    168
    Par défaut Connaître la date de création d'un fichier
    bonjour

    Je souhaiterais savoir comment je peux recupérer la date de création d'un fichier ?

    Je vous remercie
    c@simir

  2. #2
    Membre habitué Avatar de vbcasimir
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    455
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 455
    Points : 168
    Points
    168
    Par défaut
    à prioris j'ai trouvé la procédure gefFtime ...
    c@simir

  3. #3
    Membre éclairé Avatar de DOLPat®
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 426
    Points : 790
    Points
    790
    Par défaut
    Pas évident de trouver la date de création. les fonctions existantes ne donnent que la date de dernière modification.
    Voila une procédure pour sortir les 3 dates/heures (création, accès, modification) d'un fichier: (exemple pour c:\bdlog.txt)
    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
    uses
      Windows;
     
    function FileTimeToDTime(FTime: TFileTime): TDateTime;
    var
      LocalFTime: TFileTime;
      STime: TSystemTime;
    begin
      FileTimeToLocalFileTime(FTime, LocalFTime);
      FileTimeToSystemTime(LocalFTime, STime);
      Result := SystemTimeToDateTime(STime);
    end;
     
     
    procedure TForm1.FormCreate(Sender: TObject);
    var
      SR: TSearchRec;
      CreateDT, AccessDT, ModifyDT: TDateTime;
    begin
      if FindFirst('c:\bdlog.txt', faAnyFile, SR) = 0 then
        begin
          CreateDT := FileTimeToDTime(SR.FindData.ftCreationTime);
          AccessDT := FileTimeToDTime(SR.FindData.ftLastAccessTime);
          ModifyDT := FileTimeToDTime(SR.FindData.ftLastWriteTime);
          ShowMessage('Date de création:           ' + DateTimeToStr(CreateDT) + #10 +
          'Dernier accès:                 ' + DateTimeToStr(AccessDT) + #10 +
          'Dernière modification: ' + DateTimeToStr(ModifyDT));
      end
      else
        ShowMessage('Fichier introuvable...');
      FindClose(SR);
    end;
    À +
    Pat.


    Si vous avez trouvé chaussure à votre pied... euh solution à votre problème, n'oubliez pas de clôturer le sujet en le marquant comme:
    ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
    Windows 8.1, Lazarus 1.8.2 SVN 57369 FPC 3.0.4 x86_64-win64-win32/win64

  4. #4
    Membre habitué Avatar de vbcasimir
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    455
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 455
    Points : 168
    Points
    168
    Par défaut
    merci pour ton exemple complet mais je suis obstiné je voudrais utilisé la procedure getFtime j'ai repris un exemple mais je n'ai pas le résultat que je voudrais

    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
    PROGRAM affich;
    Uses 
    Dos;
    Var S: SearchRec;
    f: File;
    Y : Text;
    Heure: longInt;
    dt: DateTime;
     
    function format(w:word):string; {fonction, renvoit en valeur intrinsèque}
    var s: string;                   {variable chaîne locale}
    begin                           {début de la fonction}
    str(w:0,s);                     {convertie une chaîne STRING nombre en WORD}
    if length(s)=1 then s:='0'+s;
    {si la chaîne possède un seul caractère, alors on lui rajoute un zéro devant}
    format:=s;                      {la fonction FORMAT prend la valeur de S}
    end;   
     
    BEGIN
    FindFirst('C:\test\*.zip',Archive,S);
    while DosError = 0 do
    begin
            writeln(S.Name);
            assign(f,S.Name);
            getftime(f,Heure);
            unpacktime(Heure,dt);
            writeln(format(dt.hour));           
            FindNext(S);
     
            end;
    FindClose(S);
    END.
    j'obtiens les résultats suivant lorsque j'exécute le programme

    archive1.zip
    00
    archive2.zip
    00
    Copie (2) de archive1.zip
    00
    Copie (3) de archive1.zip
    00
    Copie de archive1.zip
    00

    Auriez-vous une idée du souci ?
    c@simir

  5. #5
    Membre éclairé Avatar de DOLPat®
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 426
    Points : 790
    Points
    790
    Par défaut
    Citation Envoyé par vbcasimir Voir le message
    merci pour ton exemple complet mais je suis obstiné je voudrais utilisé la procedure getFtime
    Pourquoi faire simple quand on peut faire compliqué... Enfin, c'est toi qui vois.

    j'ai repris un exemple mais je n'ai pas le résultat que je voudrais.
    Auriez-vous une idée du souci ?
    Oui, à mon avis, tu dois utiliser Unpacktime pour arriver à tes fins. Regarde ce tutoriel.
    À +
    Pat.


    Si vous avez trouvé chaussure à votre pied... euh solution à votre problème, n'oubliez pas de clôturer le sujet en le marquant comme:
    ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
    Windows 8.1, Lazarus 1.8.2 SVN 57369 FPC 3.0.4 x86_64-win64-win32/win64

  6. #6
    Membre habitué Avatar de vbcasimir
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    455
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 455
    Points : 168
    Points
    168
    Par défaut
    j'ai donc trouvé dans le code ce qui me manquait



    reset(f);
    getftime(f,Heure);
    close(f);

    maintenant je recupère correctement l'heure du fichier ...
    c@simir

Discussions similaires

  1. Réponses: 11
    Dernier message: 20/05/2010, 13h28
  2. Réponses: 4
    Dernier message: 21/06/2006, 16h34
  3. Réponses: 4
    Dernier message: 15/09/2005, 13h27
  4. Réponses: 17
    Dernier message: 01/03/2005, 16h11
  5. Date de création d'un fichier
    Par daphne35 dans le forum Windows
    Réponses: 5
    Dernier message: 20/01/2005, 17h09

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