bonjour,
j'ai composé à l'aide du forum un code pour supprimer les fichier ancien d'un dossier.
Le problème c'est que ma condition if ne marche pas comme il le faudrait.
il me suprime des fichiers ancien (c ce qu'on lui demande)
mais
il me supprime par exemple un fichier que je viens de creer à l'instant
il ne me suprime pas certain fichiers anciens.
voici le code en question
les différentes msgbox me permmettent juste de controler le contenu de mes variables.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 Dim rs As DAO.Recordset Set rs = CurrentDb.OpenRecordset("Paramètres", dbOpenDynaset) Dim fs As New Scripting.FileSystemObject Set fs = CreateObject("Scripting.FileSystemObject") Dim objShell As Shell32.Shell Dim strFileName As Shell32.FolderItem Dim objFolder As Shell32.Folder Dim Resultat As String Dim streparchive As String Dim i As Byte streparchive = rs!Repsauvarchive Set objShell = CreateObject("Shell.Application") 'Répertoire cible Set objFolder = objShell.nameSpace(streparchive) 'boucle sur tous les elements du repertoire For Each strFileName In objFolder.Items 'Pour que les dosssiers ne soient pas pris en comptes If strFileName.isFolder = False Then Resultat = "" ' For i = 0 To 2 MsgBox (streparchive & strFileName) MsgBox FileDateTime(streparchive & strFileName) ' donne la date du fichier MsgBox (CStr(Year(Now()) - 5)) If FileDateTime(streparchive & strFileName) < CStr(Year(Now()) - 5) Then fs.DeleteFile (streparchive & strFileName), True Else End If End If Next End Sub
elles renvoient bien ce qui est attendu à savoir la date du fichier et la date - 5 ans.
Mais la condition est hasardeuse...
Merci de vérifier ce code pour me donner une éventuelle piste
merci à tous
Partager