Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

EFFACER FICHIER/DOSSIERS EN FONCTION DE LEUR DERNIERE DATE DE MODIFICATION.


Information sur la source

Catégorie :VBScript Classé sous : fichier, dossiers, effacer, vbs Niveau : Débutant Date de création : 13/12/2006 Date de mise à jour : 04/04/2007 09:32:30 Vu : 9 543

Note :
Aucune note

Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

Description

Ce code est ecrit en Vbscript, pour dans un dossier effacer les fichiers et dossiers en fonction de leur derniere date de modification.

je suis un debutant, en fait j'ai appris le vbs en faisant ce script (je ne suis pas developpeur mais admin reseaux)

je l'ai commenté le plus possible pour les debutants, il y a des fonctions que l'on peut reprendre : "recursive, appel de fonction, utilisation du FSO, ..."

soyez indulgent, je poste plus pour les debutants qui galére, comme j'ai galeré, que pour la posteritée (^^) un peut de fiertée personnelle quand meme.

je n'ai pas trouvé de source qui y resemble (ou alors pleins de sources qui faut assenbler ) si elle existe deja supprimer la !    
 

Source

  • on error resume next
  • 'declaration des variables
  • Dim folder
  • dim Subfolder
  • dim path
  • Dim FSO
  • Dim B
  • 'instantation du file system object (FSO)
  • Set FSO = CreateObject("Scripting.FileSystemObject")
  • 'initialisation de la variable contenant le chemin du repertoire racine
  • path = "D:\test_transit\Transit"
  • 'appel de la fonction recurcive avec comme argument le chemin du repertoire
  • 'racine
  • recurcive path
  • function recurcive(chemin) 'fonction récurcive pour traiter tout l'arboresence
  • 'des dossiers
  • set folder = FSO.GetFolder (chemin) 'utilisation du FSO pour prendre le dossier
  • 'racine
  • set Subfolder = folder.SubFolders 'definition de la varibale pour les S/dossiers
  • for each A in Subfolder 'pour chaque dossier dans le sous dossier racine
  • Set fic = A.Files 'definition de la variables toucher les fichier des dossier
  • fichier fic 'appel de la fontion fixhier
  • recurcive A 're-appel de la fonction recurcive pour traiter les S/dossiers
  • next
  • end function 'fin de la fonction
  • function fichier(fic) 'fonction qui traite les fichiers dans les dossiers A
  • For Each objFile in fic 'pour chaque fichier dans dossiers de fichier
  • Set f = fso.GetFile(objfile) 'utilisation du FSO pour prendre le fichier
  • If DateDiff("D", objfile.DateLastModified, now) > 10 Then 'si la derniére modification du fichier est plus ancienne que X jours
  • msgbox objfile & " a suprimer" 'alors effacer le fichier avec option de forcer pour les fichier en lecture seule
  • 'FSO.DeleteFile f, force = yes
  • end if 'fin du SI
  • next
  • end function 'fin de la fonction
  • Set fic = folder.Files
  • fichier fic
  • set folder = FSO.GetFolder (path)'utilisation du FSO pour prendre le dossier
  • For Each B in folder.subfolders 'pour chaque dossier dans le 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
on error resume next
'declaration des variables
Dim folder
dim Subfolder
dim path
Dim FSO
Dim B
'instantation du file system object (FSO)
Set FSO = CreateObject("Scripting.FileSystemObject")

'initialisation de la variable contenant le chemin du repertoire racine
path = "D:\test_transit\Transit"

'appel de la fonction recurcive avec comme argument le chemin du repertoire
'racine
recurcive path

function recurcive(chemin) 'fonction récurcive pour traiter tout l'arboresence
                           'des dossiers

set folder = FSO.GetFolder (chemin) 'utilisation du FSO pour prendre le dossier
                                    'racine
set Subfolder = folder.SubFolders   'definition de la varibale pour les S/dossiers

for each A in Subfolder 'pour chaque dossier dans le sous dossier racine
        Set fic = A.Files 'definition de la variables toucher les fichier des dossier

        fichier fic 'appel de la fontion fixhier
        recurcive A 're-appel de la fonction recurcive pour traiter les S/dossiers
        
next
end function 'fin de la fonction


function fichier(fic) 'fonction qui traite les fichiers dans les dossiers A

For Each objFile in fic 'pour chaque fichier dans dossiers de fichier
        Set f = fso.GetFile(objfile) 'utilisation du FSO pour prendre le fichier
            If DateDiff("D", objfile.DateLastModified, now) > 10 Then 'si la derniére modification du fichier est plus ancienne que X jours
            msgbox objfile & " a suprimer" 'alors effacer le fichier avec option de forcer pour les fichier en lecture seule
            'FSO.DeleteFile f, force = yes
            end if 'fin du SI
    next
    
end function 'fin de la fonction

Set fic = folder.Files
fichier fic

       set folder = FSO.GetFolder (path)'utilisation du FSO pour prendre le dossier
       For Each B in folder.subfolders 'pour chaque dossier dans le 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
        


Conclusion

j'ai mis en commentaire les commandes pour la supresion et mis des MSGBOX a la place par securitée (ne rigoler pas on ne sait jamais !)

j'attend vos remarques, critiques, amelorations possibles

MERCI !
 

Historique

14 décembre 2006 09:41:46 :
1 - rajout d'un commentaire
14 décembre 2006 11:05:27 :
2 - mis e ajour de variables
14 décembre 2006 14:13:31 :
3 - mise a jour pour etre mis en production
04 avril 2007 09:31:12 :
ajout à la ligne 47 de "Set fic = folder.Files" , car les fichiers à la racine n'étaient pas supprimés. merci a Sidclimber pour son aide
04 avril 2007 09:32:30 :
mauvaise manipulation

Commentaires et avis

signaler à un administrateur
Commentaire de Sidclimber le 09/02/2007 16:52:29

Merci darksnake69, ton script m'a fait gagner pas mal de temps.
Moi je le trouve bien, il fonctionne sans avoir à le retoucher et le moins que l'on puisse dire est qu'il est commenté !
J'ai quand même rajouté les 2 lignes suivantes à la ligne 47, car les fichiers à la racine n'étaient pas supprimés.

Set fic = folder.Files
fichier fic

A+

signaler à un administrateur
Commentaire de djedjeska le 22/11/2007 22:48:04

ché moi le fso.deletefile mindique un défaut de compatibilité ! Qqn pourrait m'aider?
dim fichier
set fso = CreateObject("Scripting.FileSystemObject")
const forreading = 1, forwriting = 2, forappending = 8
set fichier = fso.createtextfile ("chemin\fichier.txt", forwriting,true)
msgbox "coucou"
fso.deletefile fichier, force = yes

signaler à un administrateur
Commentaire de darksnake69 le 09/01/2008 15:01:15

essaye plutot

[code]
Dim fso, MyFile, MyFile2
Set fso = CreateObject("Scripting.FileSystemObject")

fic = "c:\testfile.txt"

Set MyFile = fso.CreateTextFile(fic, True)
MyFile.WriteLine("Ceci est un test.")
MyFile.Close
msgbox "coucou"

Set MyFile2 = fso.GetFile(fic)
MyFile2.Delete



[/code]

tiré de la doc vbscript.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

executer un vbs a partir de vb [ par mouradj2006 ] salut les amis;svp comment peut on executer un fichier vbs a partir de vb6; cad executer un fichier de scripte (vbs) a partir d'un bouton dans mon for copier un fichier ou un programme [ par rogerrabitt ] bonjour , j aurais aimé savoir la commande en vbs pour copier ou plutot  cloner un fichier ou un programme sur le dique c:\ en cliquant dessus.exemple Effacer un fichier text [ par Dane6 ] Bonsoir, Savez-vous me dire comment on efface un fichier txt pour le recréer après ? Merci effacer un fichier text, et un tableau de données [ par Rukialilly ] Bonjour, voila je cherche comment effacer tout le contenu d'un fichier text, et je cherche également comment effacer toutes les données d'un tableau d VBS : Rechercher une valeur dans un tableau excel [ par sboulic ] Bonjour,Novice en VBScript (en prog tout court), je dois modifier un script de logon windows (.vbs) pour aller chercher une veleur dans un fichier.J'a VBS Chercher et remplacer une ligne par une autre dans un fichier texte [ par toulouz1 ] Bonjour,Je suis relativement débutant en VBS, galère sur un pb que je supposais simple et tranquille au départ, en VBS : J'ai un fichier texte avec un vbs : Faire un archiveur [ par cedric4242 ] Bonjour, Je cherche a réaliser un archiveur en vbs (je sais idée bizard mais c'est pour mon ecole). Je souhaite donc pouvoir concaténer différents typ Programme VBS [ par tkhaled53 ] Bonjour tout le monde, je suis un « très grand » débutant en programmation  je suis là en espérant que je trouverai des réponses à mes interrog Exporter les 'dossiers publics' de Outlook en fichier Excel [ par wyllou ] Bonjour à tous,Je vais faire court, c'est jamais marrant à lire quand il y a des tonnes de lignes.Je recherche comment exporter le contenu des dossier


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.