Date de dernière modification d'un répertoire

cs_ebernar Messages postés 4 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 30 janvier 2006 - 30 janv. 2006 à 16:29
cs_ebernar Messages postés 4 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 30 janvier 2006 - 30 janv. 2006 à 19:45
Bonjour,

J'ai besoin, pour un script de purge de fichiers inutiles, de récupérer la date de dernière modification d'un répertoire. J'arrive à le faire pour un fichier mais pas pour un répertoire.

Merci de votre aide

Gérald BERNARD

6 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
30 janv. 2006 à 17:10
répertoire ou fichier c'est la même chose:

MsgBox FileDateTime("C:\WINDOWS")

Daniel
0
cs_ebernar Messages postés 4 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 30 janvier 2006
30 janv. 2006 à 17:20
J'avais déjà essayé et çà me retourne Erreur d'exécution 76 "Chemin d'accés introuvable".

Gérald BERNARD
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
30 janv. 2006 à 17:37
pourtant ça marche

MsgBox FileDateTime("C:\WINDOWS") --> OK

MsgBox FileDateTime("C:\WINDOWS") --> erreur 53 File not Found

MsgBox FileDateTime("C:\ZINDOWS") --> erreur 76 Path not Found

MsgBox FileDateTime("C:\ZINDOWS") --> erreur 53 File not Found




il faut pas de "" à la fin

d'autre part le répertoire peut être caché

vérifier avec

MsgBox GetAttr("C:\WINDOWS")


Daniel
0
cs_ebernar Messages postés 4 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 30 janvier 2006
30 janv. 2006 à 18:24
Cà ne marche définitivement pas.
As-tu charger un quelconque composant dans ton projet ?

Gérald BERNARD
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
30 janv. 2006 à 18:45
aucun composant n'est nécessaire, c'est du natif (librairie VBA)

MsgBox VBA.FileDateTime("C:\WINDOWS")

sinon il y a les API

attention j'ai changé les FILETIME en Currency





Const INVALID_HANDLE_VALUE = -1



Private Type WIN32_FIND_DATA

dwFileAttributes As Long

ftCreationTime As Currency

ftLastAccessTime As Currency

ftLastWriteTime As Currency

nFileSizeHigh As Long

nFileSizeLow As Long

dwReserved0 As Long

dwReserved1 As Long

cFileName As String * MAX_PATH

cAlternate As String * 14

End Type



Private Declare Function FindFirstFile Lib "kernel32" Alias
"FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As
WIN32_FIND_DATA) As Long

Private Declare Function FindClose Lib "kernel32" (ByVal hFile As Long) As Long

Private Declare Function FileTimeToLocalFileTime Lib "kernel32" Alias "FileTimeToLocalFileTime" (lpFileTime As Currency, lpLocalFileTime As Currency) As Long



Private Sub Command1_Click()

Dim FindData As WIN32_FIND_DATA

Dim Cur As Currency

Dim nom As String

Dim hfind As Long

Dim dt As Date



nom = "C:\WINDOWS"

hfind = FindFirstFile(nom, FindData)

If hfind = INVALID_HANDLE_VALUE Then Exit Sub

FindClose hfind


FileTimeToLocalFileTime FindData.ftLastWriteTime, Cur

dt = (Cur / 1000 - 9435312000#) / 86400

MsgBox dt

End Sub


Daniel
0
cs_ebernar Messages postés 4 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 30 janvier 2006
30 janv. 2006 à 19:45
Cà y est, j'ai trouvé d'où venait mon erreur.Cà marche parfaitement.

Merci beaucoup.

Gérald BERNARD
0