[résolu] recherche dans l'arboresence

recherche dans l'arboresence [résolu] - VB/VBA/VBS - Programmation

Marsh Posté le 15-09-2005 à 17:15:55    

Bonjour !!
 
J'aurais besoin d'un script tout simple (enfin tout simple pour qqn qui connait vbs :D) :
j'ai un dossier "folder" contenant plusieurs sous dossiers folder1, folder2... eux mêmes contenant, entre autres, un dossier "truc" (même nom pour folder1, folder2...).
Je souhaiterais supprimer le contenu de ces dossiers "truc".
 
Merci beaucoup !!


Message édité par moldar le 16-09-2005 à 10:53:41
Reply

Marsh Posté le 15-09-2005 à 17:15:55   

Reply

Marsh Posté le 15-09-2005 à 17:19:41    

tout ce dont tu as besoin est là : ;)
http://msdn.microsoft.com/library/ [...] Object.asp


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

Marsh Posté le 15-09-2005 à 17:31:19    

Hum...spa sur... :whistle:

Reply

Marsh Posté le 15-09-2005 à 18:41:36    

moldar a écrit :

Hum...spa sur... :whistle:


T'es sur d'avoir essayé ?  :)

Reply

Marsh Posté le 16-09-2005 à 09:50:05    

Ah bah là je crois que j'ai tout donné :
 

Set objFSO = CreateObject("Scripting.FileSystemObject" )
Set objFolder = objFSO.GetFolder("C:\Documents and Settings \ moi \ bureau \ folder\" )
Set dossiers = objFolder.Subfolders
For Each objSubfolder in dossiers
 if (objSubfolder.Name="truc" ) then
 msgbox(objsubfolder)
 Set chemin = objFSO.GetFolder("C:\Documents and Settings \ moi \ bureau \ test\" & objSubfolder & " )
 kill chemin & "/*.*"
End if
Next

 
Mais j'obtiens un message d'erreur "chemin d'accès introuvable" ligne 7 alors que objsubfolder est bien égal à "truc".
En plus, dans le cas où ça marcherait, ça ne ferait toujours pas ce que je veux, puisque on est ici à un sous-niveau de répertoire, alors que je voudrais que le script scrute à deux sous-niveaux...
 
 :cry:


Message édité par moldar le 16-09-2005 à 09:51:43
Reply

Marsh Posté le 16-09-2005 à 10:37:11    

Bon ça avance :
 
Set objFSO = CreateObject("Scripting.FileSystemObject" )
Set objFolder = objFSO.GetFolder("C:\Documents and Settings\moi\bureau\folder\" )
Set dossiers = objFolder.Subfolders
For Each objSubfolder in dossiers
 if (objSubfolder.Name="truc" ) then
 msgbox(objsubfolder)
 objFSO.DeleteFile(objsubfolder & "\*.*" )
End if
Next

 
Ca marche pour les dossiers de premier niveau, reste à voir pour les dossiers de second niveau...

Reply

Marsh Posté le 16-09-2005 à 10:53:27    

Ca marche !!

Set objFSO = CreateObject("Scripting.FileSystemObject" )
Set objFolder = objFSO.GetFolder("C:\Documents and Settings\moi\bureau\folder\" )
Set dossiers = objFolder.Subfolders
For Each objSubfolder in dossiers
 set sousdoss=objsubfolder.Subfolders
  For Each objSubfolder2 in sousdoss
  if (objSubfolder2.Name="truc" ) then
   msgbox(objsubfolder2)
  objFSO.DeleteFile(objsubfolder2 & "\*.*" )
 End if
 Next
Next

 
Merci de ne pas m'avoir donner la soluce, au moins j'aurai appris quelque chose  ;)

Reply

Marsh Posté le 16-09-2005 à 10:55:02    

La récursivité est ton amie ;)

Reply

Marsh Posté le 16-09-2005 à 10:56:56    

Reply

Marsh Posté le 16-09-2005 à 11:06:00    

dahlo a écrit :

La récursivité est ton amie ;)


 
Comment tu ferais ça récursivement ?

Reply

Marsh Posté le 16-09-2005 à 11:06:00   

Reply

Marsh Posté le 16-09-2005 à 11:14:33    

moldar a écrit :

Comment tu ferais ça récursivement ?


vu que tu connais l'mplacement où se trouvent les fichiers que tu veux effacer, la récursivité n'est pas vraiment indiquée dans ton cas.


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

Marsh Posté le 16-09-2005 à 11:16:42    

moldar a écrit :

Ca marche !!

Set objFSO = CreateObject("Scripting.FileSystemObject" )
Set objFolder = objFSO.GetFolder("C:\Documents and Settings\moi\bureau\folder\" )
Set dossiers = objFolder.Subfolders
For Each objSubfolder in dossiers
 set sousdoss=objsubfolder.Subfolders
  For Each objSubfolder2 in sousdoss
  if (objSubfolder2.Name="truc" ) then
   msgbox(objsubfolder2)
  objFSO.DeleteFile(objsubfolder2 & "\*.*" )
 End if
 Next
Next

 
Merci de ne pas m'avoir donner la soluce, au moins j'aurai appris quelque chose  ;)


C'est le but du forum ;)


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

Marsh Posté le 16-09-2005 à 11:17:15    

;)

Reply

Marsh Posté le 16-09-2005 à 11:17:58    

0x90 a écrit :

rm -r folder/folder*/truc/* [:spamafote]


 
"rm -r" sous Windaub c'est pas gagné...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed