begin process at 2012 02 17 08:39:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Divers

 > 

Débutants

 > 

modification code pour supp fichier dépassant une date


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

modification code pour supp fichier dépassant une date

vendredi 20 mars 2009 à 10:43:46 | modification code pour supp fichier dépassant une date

ice1

bonjour à tous,
voilà j'ai trouvé sur ce forum un super code de mohaxx qui marche vraiment nickel mais j'ai besoin de l'adapter à mes besoins. j'aimerais savoir si vous pouvez me guider un peu :). voilà le script permet de supprimer les dossier et les fichiers (même dans les sous-dossiers) qui sont vieux de 15jours, l'emplacement du repertoire de base est demandé par interface graphique.
en faite moi j'aurais besoin de supprimer les anciens fichiers seulement et non les dossiers (donc toujours recherche dans les sous-répertoires) et que le repertoire de base soit écrit en dur car je veux lancer cette tâche en planification.

j'ai cru que c'était strFoldername qui prenait le chemin mais ça me fait des erreurs, j'ai essayé de mettre en commentaire les lignes que je pensais utile à lancer l'interface graphique mais à chaque fois il me manque des données (toujours des erreurs). j'ai bien compris que c'était plus la dernière partie qui à l'air de correspondre à mes besoins mais je n'arrive pas à le transformer (ou le scinder :p)

voici le code :
[code]'*******************************************************************************
' Script permettant D 'effacer les fichiers Qui date de plus de 15 jours
' Avec interface Graphique
'
'*******************************************************************************
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("Shell.Application")  
Set objFolder = objShell.BrowseForFolder _
    (WINDOW_HANDLE, "Selectionner le dossier à traiter :", NO_OPTIONS, ".")
Set objFolderItem = objFolder.Self
strFolderName = objFolderItem.Path
Set colSubfolders = objWMIService.ExecQuery _
    ("Associators of {Win32_Directory.Name='" & strFolderName & "'} " _
        & "Where AssocClass = Win32_Subdirectory " _
            & "ResultRole = PartComponent")
'Wscript.Echo strFolderName
arrFolderPath = Split(strFolderName, "\")
strNewPath = ""
For i = 1 to Ubound(arrFolderPath)
    strNewPath = strNewPath & "\\" & arrFolderPath(i)
Next
strPath = strNewPath & "\\"
Set colFiles = objWMIService.ExecQuery _
    ("Select * from CIM_DataFile where Path = '" & strPath & "'")
For Each objFile in colFiles
    Set objReadOnlyFile = objFSO.GetFile(objFile.Name)
     'Wscript.Echo objFile.Name & chr (10) &  objReadOnlyFile.DateLastModified
 if DateDiff("d",objReadOnlyFile.DateLastModified ,Date)>15 then
     objFile.delete
end if
Next
For Each objFolder in colSubfolders
    GetSubFolders strFolderName
Next
Sub GetSubFolders(strFolderName)
    Set colSubfolders2 = objWMIService.ExecQuery _
        ("Associators of {Win32_Directory.Name='" & strFolderName & "'} " _
            & "Where AssocClass = Win32_Subdirectory " _
                & "ResultRole = PartComponent")
    For Each objFolder2 in colSubfolders2
        strFolderName = objFolder2.Name
        'Wscript.Echo
        'Wscript.Echo objFolder2.Name
        arrFolderPath = Split(strFolderName, "\")
        strNewPath = ""
        For i = 1 to Ubound(arrFolderPath)
            strNewPath = strNewPath & "\\" & arrFolderPath(i)
        Next
        strPath = strNewPath & "\\"
        Set colFiles = objWMIService.ExecQuery _
            ("Select * from CIM_DataFile where Path = '" & strPath & "'")
        For Each objFile in colFiles
        Set objReadOnlyFile = objFSO.GetFile(objFile.Name)
        if DateDiff("d",objReadOnlyFile.DateLastModified ,Date)>15 then
            'Wscript.Echo objFile.Name & chr (10) &  objReadOnlyFile.DateLastModified
            objFile.delete
          end if
        Next
        GetSubFolders strFolderName
    Next
End Sub[/code]

je débute complètement en vbs alors si vous pouviez me parler très simplement lol
merci d'avance
vendredi 20 mars 2009 à 11:08:22 | Re : modification code pour supp fichier dépassant une date

loulou69

Bonjour

Remplacer les 2 lignes

Set objShell = CreateObject("Shell.Application")  
Set objFolder = objShell.BrowseForFolder _
    (WINDOW_HANDLE, "Selectionner le dossier à traiter :", NO_OPTIONS, ".")
par

Set objFolder = objFso.GetFolder("c:\mondossier....en dur")
vendredi 20 mars 2009 à 11:23:56 | Re : modification code pour supp fichier dépassant une date

ice1

merci pour ta réponse mais cela me donne l'erreur "ligne 13 : cette objet ne gère pas cette propriété ou cette méthode : 'objFolder.Self"
la ligne 13 correspond à : Set objFolderItem = objFolder.Self
vendredi 20 mars 2009 à 11:27:18 | Re : modification code pour supp fichier dépassant une date

loulou69

essaye alors
Set objFolderItem = objFso.GetFolder("c:\mondossier....en dur")
vendredi 20 mars 2009 à 11:40:43 | Re : modification code pour supp fichier dépassant une date

ice1

mais cette fois une autre erreur : objet requis : 'objFolder' -> toujours la même ligne
vendredi 20 mars 2009 à 12:02:35 | Re : modification code pour supp fichier dépassant une date

loulou69

Je ne comprends pas, il s'agit bien d'un VBScript, dans ce cas la déclaration n'est pas obligatoire

Dans la modification proposée, Il n'y a plus d'apparition de objFolder dans le code jusqu'à rencontrer la ligne : For each objFolder in colSubfolders

On a remplace
Set objFolder = objShell.BrowseForFolder _
    (WINDOW_HANDLE, "Selectionner le dossier à traiter :", NO_OPTIONS, ".")
Set objFolderItem = objFolder.Self

par
Set objFolderItem =objFso.GetFolder(".........")

Au besoin tracer l'avancement avec des command WScript.echo
Mes message d'erreur sont des boites de dialogue de titre "Windows Script Host" par exemple lorsque je mets un nom de répertoire inexistant

vendredi 20 mars 2009 à 13:14:46 | Re : modification code pour supp fichier dépassant une date

ice1

ça y est ça marche  
en faite dans ton 1er message tu m'avais dis de remplacer :
Set objShell = CreateObject("Shell.Application")  
Set objFolder = objShell.BrowseForFolder _
    (WINDOW_HANDLE, "Selectionner le dossier à traiter :", NO_OPTIONS, ".")

et dans le dernier message tu m'as remis :
Set objFolder = objShell.BrowseForFolder _
    (WINDOW_HANDLE, "Selectionner le dossier à traiter :", NO_OPTIONS, ".")
Set objFolderItem = objFolder.Self

donc en refaisant bien comme tu m'as dit c'est bon !!
par contre si peux encore abuser un peu de ton aide, pourrais tu m'aider à supprimer la partie qui supprime les dossiers ? je n'aimerais pas avoir de mauvaises surprises ...
si je supprime cette partie es-ce que ce serai bon (cela sans causer de dommage):

strNewPath = ""
For i = 1 to Ubound(arrFolderPath)
    strNewPath = strNewPath & "\\" & arrFolderPath(i)
Next
strPath = strNewPath & "\\"
Set colFiles = objWMIService.ExecQuery _
    ("Select * from CIM_DataFile where Path = '" & strPath & "'")
For Each objFile in colFiles
    Set objReadOnlyFile = objFSO.GetFile(objFile.Name)
     'Wscript.Echo objFile.Name & chr (10) &  objReadOnlyFile.DateLastModified
 if DateDiff("d",objReadOnlyFile.DateLastModified ,Date)>15 then
     objFile.delete
end if
vendredi 20 mars 2009 à 14:14:30 | Re : modification code pour supp fichier dépassant une date

ice1

c'est bon j'ai réussi   merci beaucoup pour ton aide !!
vendredi 20 mars 2009 à 22:12:23 | Re : modification code pour supp fichier dépassant une date

NHenry

Membre Club Administrateur CodeS-SourceS
Bonjour,

Pour info, ton code ne ressemble pas du tout à du .NET (cf la catégorie de ta question), merci de poster dans la bonne catégorie.
De plus, tu ne précise pas le langage utilise (j'espère que c'est du VBS).

Ma signature pour pointer sur mon site


Cette discussion est classée dans : set, name, strfoldername, strnewpath, objfile


Répondre à ce message

Sujets en rapport avec ce message

Effacer fichier de plus de x jours [ par vyper55 ] je suis débutant en vbs, j'ai recupérer ce script qui permet de nettoyer les fichiers de plus de x jours avec une interface graphiquele but de lancer Demande aide modification script...Merci! [ par bil800 ] Bonjour,Je souhaitres une aide svp pour ce script, que j'ai trouvé, ca sert à éffacer automatiquement des fichiers dans un dossier, selon une date de Demande de l'aide VBSCRIPT [ par JHON44 ] Bonjour à toutes et à tous, Je cherche quelqu'un pour me donner un coups de main svp: Voilà, j'ai un script en vbs qui qui marche bien pour nettoyer Supprimer fichiers et repertoires datant de plus de 7 jours [ par Rode69 ] Bonjour, A l'aide du script de mohax007 trouvable sur : http://www.vbfrance.com/codes/SUPPRIME-FICHIERS-DATANT-PLUS-15-JOURS_33195.aspx Son script Suppression de fichier de plus de 15 jours [ par pierremarc35 ] Bonjour, je tiens tout d'abords à remercier celles et ceux qui participe à ce forum et qui nous mettes leurs code à disposition. Je me suis inspiré d Insert Into en VBS [ par Kmaa ] voila j'ai un code source de ce type[code]'*************************************************************************' Configuration parameters         Deplacement de fichier [ par fabricioliking ] Voila, j'aimerai pouvoir copier à la volé tous les fichiers présent dans le File.Name mais vb me signale une erreur sur " Set oFl = oFSO.GetFile("C:\D If else qui ne focntionne pas sur une autre machine [ par jeanluc065 ] Bonjour à Tous et toutes, En access 2002, JMO m'a écrit un code qui fonctionne super bien chez moi ( vérification du format de fichiers xls en boucle, Group name dans Active Directory [ par ws ] Bonjour à tous,Je cherche à obtenir le nom des groupes (sammacountname) dont un utilisateur fait parti. Le bout de code ci-dessous me donne le nom de {petit casse-tete} requete WMI et filtre avec la commande if then [ par kerberos69 ] Bonjour a tousvoila je suis en plein dans la redaction d'un script vbs, je me debrouille mais je ne suis pas un expert.l'objectif est de lister tous l


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,834 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales