Les Snippets

Connexion

Suppression dans un répertoire des fichiers non modifiés depuis 7 jours

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 09/06/2007 08:38:04 et initié par JMO [Liste]
Date de mise à jour : 13/06/2007 11:18:56
Vue : 7729
Catégorie(s) : Fichier / Disque
Langages dispo pour ce code :
- VBScript
- Python
- VB6, VBA



Langage : VBScript
Date ajout : 09/06/2007
Posté par JMO [Liste]
Dim strComputer, strPath, Debug
strComputer = "."
strDrive = "D:"
strPath = "\\Mes scripts VBFrance\\Test\\"
Debug=True  'Debug=True pour afficher les msgbox, les fichiers ne seront pas supprimés
            'Debug=False pas de msgbox, les fichiers seront supprimés
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colFiles = objWMIService.ExecQuery _
    ("Select * From CIM_DataFile Where Drive = '" & strDrive & "'" & "And Path = '" & strPath & "'")
If colFiles.Count <> 0 Then
   For Each objFile in colFiles
       dtDiffFile = DateDiff("d", Now, fnConversionDate(objFile.LastModified))
       
       If dtDiffFile =< -7 Then ' 7 pour nombre de jours
          If Debug=True Then _
             MsgBox  "Le fichier " &vbLf& objFile.Drive &vbLf& _
                     objFile.Path & objFile.FileName & _
                     "." & objfile.Extension &vbLf& " sera supprimé car modifié le " & _
                     fnConversionDate(objFile.LastModified) &vbLf& _
                     Now & " - " & fnConversionDate(objFile.LastModified) & " = " & _
                     dtDiffFile,vbCritical,"Verif DELETE=OUI"
             
          If Debug=False Then objFile.Delete(objFile.Path & objFile.FileName) 
          
       Else 
          If Debug=True Then _
             MsgBox  "Le fichier " &vbLf& objFile.Drive & _
                     objFile.Path & objFile.FileName & _
                     "." & objfile.Extension &vbLf& " ne sera pas supprimé car modifié le " & _
                     fnConversionDate(objFile.LastModified) &vbLf& _
                     Now & " - " & fnConversionDate(objFile.LastModified)  & " = " & _
                     dtDiffFile,vbInformation,"Verif DELETE=NON"
       End If
   Next
Else
   If Debug=True Then MsgBox "le répertoire " & strPath & " n'existe pas" 
End If
Set objWMIService = Nothing
Set colFiles = Nothing
Function fnConversionDate(strDateUTC)
fnConversionDate = Mid(strDateUTC, 7, 2) & "/" & Mid(strDateUTC, 5, 2) & "/" & _
                   Left(strDateUTC, 4) & " " & Mid(strDateUTC, 9, 2) & ":" & _
                   Mid(strDateUTC, 11, 2) & ":" & Mid(strDateUTC, 13, 2) 
End Function
Langage : Python
Date ajout : 09/06/2007
Posté par pacificator [Liste]
import time
import os
def supprimerFichierNonModifie(repertoire, nb_jours):
    if not os.path.isdir(repertoire):
        print "repertoire %s non valide" % repertoire
        return False
    t_limite = time.time() - (nb_jours * 24 * 60 * 60)
    fichiers = [f for f in [os.path.join(repertoire, f) for f in os.listdir(repertoire)] 
                        if os.path.getmtime(f) < t_limite]
    for fichier in fichiers:
        try:
            os.remove(fichier)
            print "fichier %s supprimer avec succes" % fichier
       except:
            print "impossible de supprimer le fichier %s" % fichier

Langage : VB6 , VBA
Date ajout : 12/06/2007
Posté par jrivet [Liste]
DateMAJ : 13/06/2007

Dim rep As String
rep = "C:\"
'exemple d'appel
MsgBox ClearDirectory(rep) & " fichiers ont été effacer dans " & rep

Private Function ClearDirectory(ByVal strPath As String) As Integer
Dim FSO
Dim FI As File
   Set FSO = CreateObject("Scripting.FileSystemObject")
   'pour chaque fichiers contenu dans le repertoire
   For Each FI In FSO.GetFolder(strPath).Files
       'si il n'a pas été modifier depuis 7 jours
       If (CDate(Format(FI.DateLastModified, "dd/mm/yyyy")) + 7) <= CDate(Format(Date, "dd/mm/yyyy")) Then
           'on efface le fichier
           FI.Delete
           ClearDirectory = ClearDirectory + 1
       End If
   Next
   
   'destruction des objets
   Set FSO = Nothing
   Set FI = Nothing
End Function 
Remarque :
Une fois de plus j'utilise le FileSystemObject. Certains ne l'aime pas, moi je le trouve très utile.

Snippets en rapport avec : Wmi, Cim_datafile, Datediff



Codes sources en rapport avec : Wmi, Cim_datafile, Datediff

{C / C++ / C++.NET} [C/WIN32/WMI]SAVOIR SI UNE CLASSE COM EST INSTALLÉE
Pour répondre à la question d'un boulay (Pas sur CS). Il voulait savoir comment faire pour déterm...

{SQL} CALCUL UNE DIFFÉRENCE DE DATE EN FONCTION DE JOURS FÉRIÉS/TRAVAILLÉS ET DE PLAGE HORAIRE
Cette fonction permet de calculer une différence en minutes entre deux dates/heures, dans le cadre (...

{Visual Basic, VB6, VB.NET, VB 2005} CLASSE POUR CONNECTER/DÉCONNECTER UN LECTEUR RÉSEAU
Cette classe permet de travailler avec les lecteurs réseaux. J'ai utilisé WMI et les API. La...

{Visual Basic, VB6, VB.NET, VB 2005} COMMENT CONTRÔLER TOTALEMENT LES PROCESSUS D'UN PC DISTANT (LISTE, KILL, THREADS, TOUT CE QUE VOUS VOULEZ...)
Bonjour, Voilà une source qui permet de contrôler complètement les processus d'un PC distant ! ...

{Visual Basic, VB6, VB.NET, VB 2005} INFOS WMI DES DISQUES DURS (LIEN LECTEUR LOGIQUE / LECTEUR PHYSIQUE)
Encore un titre obscur... j'ai pas trouvé mieux :p En fait, il s'agit de manipuler WMI (je ne con...

{C / C++ / C++.NET} [WMI][C++][DEV-C++] LECTURES D'INFORMATIONS AVEC WMI SOUS DEVCPP
Lecture d'informations WMI en C++ avec DEVC++. A voir: - plantage avec certains...

{C# / C#.NET} SAVOIR L'ADRESSE PHYSIQUE (MAC) DES CARTES RÉSEAUX DE L'ORDINATEUR
Ce bout de code sert a chercher les adresses physiques (MAC) des cartes réseaux installées sur la ma...

{Visual Basic, VB6, VB.NET, VB 2005} RECHERCHE EXTRÊME OU 5 FAÇONS DE CHERCHER UN FICHIER
C'est parti de mon envie d'expérimenter avec WMI. J'ai bûché avec un exemple en C# de TechHeadBrothe...

{C# / C#.NET} GESTION DES IMPRIMANTES - ADDIN POUR WHS
Cet Addin permet de gérer les imprimantes du Home server. Grâce à cet Add-in vous pouvez : - P...

{Visual Basic, VB6, VB.NET, VB 2005} WMI, GESTION D'UNE MACHINE (LOCALE OU DISTANTE)
Bonjour tout le monde, Voici ma première source postée sur VB France. Et j'avoue que pour une pre...