IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Meilleure solution effacemment dossiers et fichiers


Sujet :

VBScript

  1. #1
    Membre émérite

    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Juin 2012
    Messages
    877
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 877
    Points : 2 427
    Points
    2 427
    Par défaut Meilleure solution effacemment dossiers et fichiers
    Bonjour, plutôt bonsoir,

    Je me pose une question.

    J'ai un script vbs qui efface des fichiers plus vieux de x jours et les dossiers s'ils sont vides dans un emplacement spécifié.

    J'ai une arborescence de ce type :
    C:\FTP
    C:\FTP\Bob
    C:\FTP\Albert
    C:\FTP\Laura
    etc ...

    Je voudrai supprimer les dossiers/fichiers plus vieux de x jours dans les sous sous arborescences, i.e C:\FTP\Bob et les autres.

    J'ai vu le code de frutix :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For each subfold in FSO.GetFolder(path).SubFolders 'Pour chaque sous-dossiers dans le path
    	subpath = "C:\vbscript\temp\" & subfold.Name 'On définit une nouvelle variable avec le nom des sous-dossiers au 1er niveau
    	set folder = FSO.GetFolder (subpath)'utilisation du FSO pour prendre le dossier
    	For Each B in folder.subfolders 'pour chaque dossier dans le sous-dossier racine
    		If B.size = 0 Then 'si la taille du dossier est egal a 0 (donc vide)
    		'msgbox B & B.size 'effacer le dossier
    		FSO.DeleteFolder B, force = yes
    		End If 'fin du SI
    	Next 
    Next
    Et je me demande s'il vaut mieux utiliser sa méthode ou effectuer un Split pour placer ma racine dans C:\FTP\Bob supprimer et idem pour les autres.


    J'espère être assez explicite.

    Cordialement,
    Si la réponse vous a été donnée, pensez au Tag .
    Un petit aide à se sentir utile. Merci.

    "La folie. C'est de faire et refaire la même chose en espérant que le résultat sera différent."
    Albert Einstein

  2. #2
    Membre actif
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2011
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juillet 2011
    Messages : 380
    Points : 247
    Points
    247
    Par défaut
    Bonjour
    voila un bout de code qui devrait convenir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    path = "C:\FTP"
    Set FSO = CreateObject("Scripting.FileSystemObject")
     
    	For Each B in FSO.GetFolder(path).SubFolders
    	       d10=now-10
    		If B.size = 0 or b.DateLastModified < d10 Then 
    '		z=z & B.name & " - " & B.size & vbcr'effacer le dossier
    		FSO.DeleteFolder B, force = yes
    		End If
    	Next
    'msgbox z,,path
    Windows 10
    Microsoft Edge (64 bits)
    Google Chrome Version 67.0.3396.99 (Build officiel) (64 bits)

  3. #3
    Membre émérite

    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Juin 2012
    Messages
    877
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 877
    Points : 2 427
    Points
    2 427
    Par défaut
    Bonjour,

    Merci de ta réponse.

    Sauf erreur de ma part, le code donné supprime les sous dossiers dans path (C:\FTP).
    Or, je cherche à faire cela dans les autres sous dossiers.

    - Je m'explique.
    J'ai un dossier FTP (chemin : C:\FTP) contenant des dossiers qui peuvent être vide.
    Dans ses dossiers, je veux faire le ménage (dossiers + fichiers plus vieux de x jours) en gardant ses dossiers de "1er niveau".

    J'ai ce code qui fonctionne.
    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
    Sub Clean(FolderPath)
    For each subfold in fso.GetFolder(FolderPath).SubFolders 
    	For Each File In subfold.Files 
    		If (DateDiff("d", File.DateLastModified, DateSysteme) > CInt(AgeMaximalFichiers)) Then 
    			'If File.Attributes And 1 Then 
    				File.Attributes = 0
    				OutPut.WriteLine File.Path 
    				File.Delete() 
    				NbFichiersEffaces = NbFichiersEffaces + 1 
    			'End If 
    		End If
    	Next
    	subpath = DossierSauvegarde & "\" & subfold.Name 
    	set folder = fso.GetFolder (subpath)
    	For Each B in folder.subfolders 
    		For Each File In B.Files 	
    			If (DateDiff("d", File.DateLastModified, DateSysteme) > CInt(AgeMaximalFichiers)) Then 
    				'If File.Attributes And 1 Then 
    					File.Attributes = 0
    					OutPut.WriteLine File.Path 
    					File.Delete() 
                		NbFichiersEffaces = NbFichiersEffaces + 1 
            		'End If 
    			End If	
    		Next
    		If B.size = 0 Then 
    		OutPut.WriteLine Folder.Path
    		fso.DeleteFolder B, force = yes
    		End If 
    	Next 
    Next
    End Sub
    ********
    Après avoir vu la fonction récursive de parcours d'un répertoire de l'excellent bbil, je me demande s'il serait possible de l'implémenter ici pour effectuer les suppressions sur TOUS les niveaux d'arborescence des sous-répertoires de "niveau 1".
    Un simple appel de la fonction dans celle-ci suffirait-il ? Je ne connais pas du tout ce concept.
    ********

    J'ai donc fait ce code mais il supprime les sous-répertoires de niveau 1 ce que je ne veux pas :
    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
    Sub Clean2(stRep)
    Wscript.echo stRep
    If fso.FolderExists(stRep) Then
    Set oFld = fso.GetFolder(stRep)
    	For Each File In oFld.Files 
    		If (DateDiff("d", File.DateLastModified, DateSysteme) > CInt(AgeMaximalFichiers)) Then 
    			File.Attributes = 0
    			OutPut.WriteLine File.Path 
    			File.Delete() 
    			NbFichiersEffaces = NbFichiersEffaces + 1 
    		End If
    	Next
    	If oFld.subFolders.count > 0 Then 
    		For each SubFolder In oFld.subFolders
    		Clean2 SubFolder.Path
    			For Each File In SubFolder.Files 
    				If (DateDiff("d", File.DateLastModified, DateSysteme) > CInt(AgeMaximalFichiers)) Then 
    					File.Attributes = 0
    					OutPut.WriteLine File.Path 
    					File.Delete() 
    					NbFichiersEffaces = NbFichiersEffaces + 1 
    					MsgBox(SubFolder.Path)
     
    				End If
    			Next
    			If SubFolder.size = 0 Then 
    				OutPut.WriteLine SubFolder.Path
    				fso.DeleteFolder SubFolder, force = yes
    			End If 
    		Next
     
    	End If
    End If
     
    End Sub
    J'ai obtenu ce que je voulais.
    Problème Résolu !
    Si la réponse vous a été donnée, pensez au Tag .
    Un petit aide à se sentir utile. Merci.

    "La folie. C'est de faire et refaire la même chose en espérant que le résultat sera différent."
    Albert Einstein

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] meilleure solution pour enregistrer des fichiers en BDD
    Par laSista dans le forum Symfony
    Réponses: 8
    Dernier message: 02/02/2015, 20h29
  2. Meilleure solution pour Uploader un fichier
    Par naou18 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 03/12/2011, 13h33
  3. [PHP 5.3] Meilleur solution pour gestion de dossiers & fichiers
    Par jeanjean6 dans le forum Langage
    Réponses: 2
    Dernier message: 26/01/2011, 18h24
  4. Réponses: 4
    Dernier message: 26/09/2008, 13h16
  5. [Upload] meilleure solution pour envoi de fichiers
    Par gforce dans le forum Langage
    Réponses: 10
    Dernier message: 29/03/2007, 15h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo