Problème pour récupérer la date de modification d'un fichier
Bonjour,
J'ai développé un script VBS qui va boucler un certain nombre de fois pour vérifier qu'un fichier bien spécifique est mis à jour régulièrement. (pour faire simple, ce script surveille le log d'un autre script pour vérifier qu'il est bien en cours d'exécution)
A chaque itération, le script va comparer la date de modification du fichier scruté à celle de l'itération précédente. Si les 2 dates sont identique, ça envoie une alerte, sinon ça va attendre un certain nombre de minutes avant de passer à l'itération suivante.
Pour récupérer la date de modification de mon fichier, j'utilise :
Code:
1 2 3
| set oFile = oFSO.GetFile(p_filename)
last_date = CDate(oFile.DateLastModified)
set oFile = Nothing |
Or, il arrive très régulièrement que la date récupérée par cette méthode ne soit pas la bonne, un peu comme s'il y avait un cache des propriétés.
A 5 minutes d'intervalle, il va me dire que c'est la même date de modification, alors que le fichier aura été pourtant bien été modifié plusieurs fois (la date affichée dans l'explorateur de fichier, elle, est bonne après un "F5").
J'ai voulu feinter en utilisant "Shell.Application" :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| set oFile = oFSO.GetFile(p_filename)
tmp_foldername = oFSO.GetParentFolderName(oFile)
tmp_filename = oFSO.GetFileName(oFile)
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(tmp_foldername)
Set objFolderItem = objFolder.ParseName(tmp_filename)
last_date = objFolder.GetDetailsOf(objFolderItem, 3)
Set objFolder = Nothing
Set objFolderItem = Nothing
Set objShell = Nothing
Set oFile = Nothing |
mais j'ai exactement le même problème.
Existe-t-il un moyen de faire en sorte de ne pas utiliser la valeur "dans le cache" mais de vraiment aller récupérer la date de modification du fichier ?
Merci d'avance.