Récupérer la date de modification d'un fichier

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Récupérer la date de modification d'un fichier

Messagepar Steph_ » 13 Sep 2012 à 12:51

Bonjour
Je suis en train de chercher comment trouver la date de modification d'un fichier.
J'arrive à récupérer son nom sans problème, mais pas le FileDateTime.

Code : Tout sélectionner
Sub Postopen(Source As Notesuidocument)
   Dim pathName As String, fileName As String, userpr As String
   userpr = Environ("USERPROFILE")
   fileNum% = Freefile()
   pathName$ = "c:\WINNT\SoftwareDistribution\*.*"
   
   'Print pathName$
   
   fileName$ = Dir$(pathName$, 0)
   Do While fileName$ <> ""
      
      Print fileName$
      'fileinfo = Filedatetime ( fileName$ )
      'Msgbox filefinfo
      Call source.FieldAppendText("file", fileName$)
      Open fileName$ For Output As fileNum%
      Close fileNum%
      Print fileName$; " Created on "; Filedatetime(fileName$)
      fileName$ = Dir$()
   Loop
End Sub


si le fichier est fermé j'ai un message d'erreur fichier introuvable, si je l'ouvre, je récupère la date du fichier que je viens de créer.
je ne vois pas bien où chercher là

si quelqu'un peut me mettre un peu sur la voie ...
Avatar de l’utilisateur
Steph_
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 354
Inscrit(e) le : 24 Nov 2005 à 20:06
Localisation : Besançon

Re: Récupérer la date de modification d'un fichier

Messagepar Michael DELIQUE » 14 Sep 2012 à 09:35

salut

essais en passant par une API windows

Code : Tout sélectionner
Public Function FileInfo_API(nbHandleFichier As Long)
   %rem
      Récupère des informations sur le fichier
      Declare Function GetFileSize Lib "kernel32" ( Byval hFile As Long, lpFileSizeHigh As Long) As Long
      Declare Function GetFileTime Lib "kernel32" (Byval hFile As Long, lpCreationTime As TWO_LONG, lpLastAccessTime As TWO_LONG, lpLastWriteTime As TWO_LONG) As Long
      Public Type SYSTEMTIME
      wYear As Integer
      wMonth As Integer
      wDayOfWeek As Integer
      wDay As Integer
      wHour As Integer
      wMinute As Integer
      wSeconde As Integer
      wMilliseconds As Integer
      End Type
      Public Type TWO_LONG
      nbLong1 As Long 'dwLowDateTime
      nbLong2 As Long 'dwHighDateTime
      End Type
   %END REM
   Dim nbLong As Long
   Dim Ft1 As TWO_LONG
   Dim Ft2 As TWO_LONG
   Dim SysTime As SYSTEMTIME
   Dim lstValue List As String
   
   On Error Goto CatchError
   
   lstValue("SIZE") = "0"
   lstValue("DATE") = ""
   lstValue("TIME") = ""
   
   REM récupère la taile du fichier en bytes
   lstValue("SIZE") = Cstr(GetFileSize(nbHandleFichier,nbLong))
   
   REM  Récupère les heures du fichier
   GetFileTime nbHandleFichier, Ft1, Ft1, Ft2
   
   REM Convertion heures
   FileTimeToLocalFileTime Ft2, Ft1
   FileTimeToSystemTime Ft1, SysTime
   
   lstValue("DATE") = Cstr(SysTime.wDay) + "/" +Trim(Cstr(SysTime.wMonth)) + "/" + Trim(Cstr(SysTime.wYear))
   lstValue("TIME") = Cstr(SysTime.wHour) + ":" +Trim(Cstr(SysTime.wMinute)) + ":" + Trim(Cstr(SysTime.wSeconde))+ ":" + Trim(Cstr(SysTime.wMilliseconds))
   
   FileInfo_API = lstValue
   Erase lstValue
   Exit Function
CatchError:
   MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Error " + CStr(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Line # "+Cstr(Erl),16," ERROR !"
   lstValue("SIZE") = "0"
   lstValue("DATE") = ""
   lstValue("TIME") = ""
   FileInfo_API = lstValue
   Erase lstValue
   Exit Function
End Function
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy


Retour vers Développement

cron