PureBasic

Forums PureBasic
Nous sommes le Jeu 17/Oct/2019 13:53

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 6 messages ] 
Auteur Message
 Sujet du message: Date d'un fichier
MessagePosté: Jeu 19/Fév/2004 11:18 
Salut,
Malgré mes recherches dans l'aide, je ne trouve pas comment récupérer la date d'un fichier !
Quelqu'un serait-il comment faire ?
Merci
A+


Haut
  
Répondre en citant le message  
 Sujet du message:
MessagePosté: Jeu 19/Fév/2004 11:40 
Hors ligne

Inscription: Mer 21/Jan/2004 17:48
Messages: 5162
regarde dans la section "trucs et astuces" , le soldat inconnu a posté un truc sur ce sujet.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: Jeu 19/Fév/2004 12:04 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 25/Jan/2004 12:22
Messages: 340
Localisation: Morbihan
T'as ça qui vient de Code Archives :

Code:
; English forum: http://purebasic.myforums.net/viewtopic.php?t=9024&highlight=
; Author: boop64  (exist file check added by Andre)
; Date: 05. January 2004


; Here is some simple code to get simple file info like when the file was created,
; modified or accessed last. The code is pretty straight forward and uses the
; following windows API calls I will put them in purebasic terms.
;
; GetFileTime_(FileID , A, B, C)
; FileID = Result obtained from using OpenFile(), ReadFile(), UseFile() etc.
; A = FILETIME structure to get the date And time the file was created.
; B = FILETIME structure to get the date And time the file was last accessed.
; C = FILETIME structure to get the date And time the file was last modified.
;
; FileTimeToLocalFileTime_(A, B)
; A = One of the FILETIME structures previously used in the GetFileTime_() function To be converted into a local file time.
; B = FILETIME structure to store converted file time.
;
; FileTimeToSystemTime_(A, B)
; A = FILETIME structure with local file time To be converted To system time.
; B = SYSTEMTIME structure to store converted system time.


FileToTest$ = "isnamevalid.pb"

;|---------------------|
;|  Coded By: Boop64   |
;|http://www.boop64.net|
;|---------------------|
;Structure FILETIME
;    dwLowDateTime.l
;    dwHighDateTime.l
;EndStructure

;Structure SYSTEMTIME
;    wYear.w
;    wMonth.w
;    wDayOfWeek.w
;    wDay.w
;    wHour.w
;    wMinute.w
;    wSecond.w
;    wMilliseconds.w
;EndStructure
;I left the structres commented here so that you can see what variables are acctually in them
;so that you can modify this code for your purposes.
;To use this just include in your projects.

Procedure.s WeekDay(day)
  Select day
  Case 0
    wday$ = "Sunday"
  Case 1
    wday$ = "Monday"
  Case 2
    wday$ = "Tuesday"
  Case 3
    wday$ = "Wedsday"
  Case 4
    wday$ = "Thursday"
  Case 5
    wday$ = "Friday"
  Case 6
    wday$ = "Saturday"
  EndSelect
  ProcedureReturn wday$
EndProcedure

Procedure.s ModifiedOn(File$)
  F1.FILETIME
  F2.FILETIME
  S1.SYSTEMTIME
  fileid.l = ReadFile(0, File$)
  GetFileTime_(fileid , #NULL, #NULL, F2)
  FileTimeToLocalFileTime_(F2, F1)
  FileTimeToSystemTime_(F1, S1)
 
  fileinfo$ = WeekDay(S1\wDayOfWeek) +" " + Str(S1\wMonth) +"/"+ Str(S1\wDay) +"/"+ Str(S1\wYear)
;  CloseFile(0)
  ProcedureReturn fileinfo$
EndProcedure

Procedure.s LastAccess(File$)
  F1.FILETIME
  F2.FILETIME
  S1.SYSTEMTIME
  fileid.l = ReadFile(0, File$)
  GetFileTime_(fileid , #NULL, F2, #NULL)
  FileTimeToLocalFileTime_(F2, F1)
  FileTimeToSystemTime_(F1, S1)
 
  fileinfo$ = WeekDay(S1\wDayOfWeek) +" " + Str(S1\wMonth) +"/"+ Str(S1\wDay) +"/"+ Str(S1\wYear)
;  CloseFile(0)
  ProcedureReturn fileinfo$
EndProcedure

Procedure.s CreatedOn(File$)
  F1.FILETIME
  F2.FILETIME
  S1.SYSTEMTIME
  fileid.l = ReadFile(0, File$)
  GetFileTime_(fileid , F2, #NULL, #NULL)
  FileTimeToLocalFileTime_(F2, F1)
  FileTimeToSystemTime_(F1, S1)
 
  fileinfo$ = WeekDay(S1\wDayOfWeek) +" " + Str(S1\wMonth) +"/"+ Str(S1\wDay) +"/"+ Str(S1\wYear)
;  CloseFile(0)
  ProcedureReturn fileinfo$
EndProcedure

If FileSize(FileToTest$) > 0
  MessageRequester("Created On", CreatedOn(FileToTest$))
  MessageRequester("Last Accessed", LastAccess(FileToTest$))
  MessageRequester("Modified On", ModifiedOn(FileToTest$))
Else
  MessageRequester("Error", "File "+FileToTest$ + " don't exist!")
EndIf
; ExecutableFormat=Windows
; FirstLine=1
; DisableDebugger
; EOF


Ce code semble marcher impec.

JL

_________________
Quand on me gonfle trop j'éclate, sinon ça va !


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: Jeu 19/Fév/2004 12:29 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 24/Jan/2004 14:54
Messages: 3731
Et ça, ça suffirait pas???

Code:
File$ = "Change.txt"; <----- Mettre le chemin du fichier ici
hFile = ReadFile(0,File$)
If hFile
  GetFileTime_(hFile, @Creation.FILETIME,@LastAcces.FILETIME,@Write.FILETIME)
  FileTimeToSystemTime_(Creation.FILETIME,@InfoCreation.SYSTEMTIME)
  FileTimeToSystemTime_(LastAcces.FILETIME,@InfoWrite.SYSTEMTIME)
  FileTimeToSystemTime_(Write.FILETIME,@InfoAcces.SYSTEMTIME)
EndIf

Debug "Fichier créé le "+Str(InfoCreation\wDay)+"/"+Str(InfoCreation\wMonth)+"/"+Str(InfoCreation\wYear)
Debug "Modifié le "+Str(InfoWrite\wDay)+"/"+Str(InfoWrite\wMonth)+"/"+Str(InfoWrite\wYear)
Debug "Dernier accès le "+Str(InfoAcces\wDay)+"/"+Str(InfoAcces\wMonth)+"/"+Str(InfoAcces\wYear)


Chris :)


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: Jeu 19/Fév/2004 14:30 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 25/Jan/2004 12:22
Messages: 340
Localisation: Morbihan
Si et y'avais ça aussi :

Code:
Procedure.s FileTime(fichier$, typedate.l)
    HandleFichier.l = OpenFile(2, fichier$) ; recupère le Handle du fichier avec la fonction OpenFile
    If HandleFichier And OpenLibrary(0, "kernel32.dll")
        CallFunction(0, "GetFileTime", HandleFichier, ct.FILETIME, lat.FILETIME, lwt.FILETIME) ;
        Select typedate
            Case 1 ; si typedate = 1, renvoi la date de création
                CallFunction(0, "FileTimeToLocalFileTime", @ct, @lpLocalFileTime.FILETIME) ;pour prendre en compte l'heure d'été et d'hiver
            Case 2 ; si typedate = 2, renvoi la date du dernier accès
                CallFunction(0, "FileTimeToLocalFileTime", @lat, @lpLocalFileTime.FILETIME) ;pour prendre en compte l'heure d'été et d'hiver
            Default ; si typedate = autre chose, renvoi automatiquement la date de modification
                CallFunction(0, "FileTimeToLocalFileTime", @lwt, @lpLocalFileTime.FILETIME) ;pour prendre en compte l'heure d'été et d'hiver
        EndSelect
        CallFunction(0, "FileTimeToSystemTime", @lpLocalFileTime, @st.SYSTEMTIME) ;pour convertir la date dans le format systemtime
        DateFichier$ = Space(256)
        HeureFichier$ = DateFichier$
        GetDateFormat_(2048, 0, @st, "dd'/'MM'/'yyyy", @DateFichier$, 254) ; donne la dte du fichier
        GetTimeFormat_(2048, #TIME_FORCE24HOURFORMAT, @st, 0, @HeureFichier$, 254) ; donne l'heure du fichier
        DateFichier$ = DateFichier$ + "  " + HeureFichier$ ; on assemble l'année et l'heure
        CloseFile(2)
        ProcedureReturn DateFichier$ ; renvoi la date du fichier
    Else
        ProcedureReturn "?"
    EndIf
EndProcedure

MessageRequester("Infos",FileTime("Infos Dates Fichier.pb",1),1)


JL

_________________
Quand on me gonfle trop j'éclate, sinon ça va !


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: Jeu 19/Fév/2004 17:34 
J'en suis un peu surpris,
mais je vous en remercie, encore plus, pour la rapidité de vos réponses !


Haut
  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 6 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  
cron

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye