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

Signaler
Messages postés
4
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
30 janvier 2006
-
Messages postés
4
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
30 janvier 2006
-
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

Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
31
répertoire ou fichier c'est la même chose:

MsgBox FileDateTime("C:\WINDOWS")

Daniel
Messages postés
4
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
30 janvier 2006

J'avais déjà essayé et çà me retourne Erreur d'exécution 76 "Chemin d'accés introuvable".

Gérald BERNARD
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
31
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
Messages postés
4
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
30 janvier 2006

Cà ne marche définitivement pas.
As-tu charger un quelconque composant dans ton projet ?

Gérald BERNARD
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
31
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
Messages postés
4
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
30 janvier 2006

Cà y est, j'ai trouvé d'où venait mon erreur.Cà marche parfaitement.

Merci beaucoup.

Gérald BERNARD