Recherche d'un dossier, et création d'un dossier dans ce dosser...
djedjeska
Messages postés90Date d'inscriptionmercredi 21 novembre 2007StatutMembreDernière intervention25 mai 2013
-
21 nov. 2007 à 19:04
djedjeska
Messages postés90Date d'inscriptionmercredi 21 novembre 2007StatutMembreDernière intervention25 mai 2013
-
22 nov. 2007 à 00:06
Alors voila, je sais que beaucoup de sujets en parlent, de cette fameuse recherche de dossier..
Quand je recherche un dossier directement dans "C:"
J'utilise :
dim fichier, FSO
Set FSO = CreateObject("Scripting.FileSystemObject" )const forreading 1, forwriting 2, forappending = 8
recherche = "fichier à chercher"
ShowSubfolders FSO.GetFolder("C:" ), recherche
Sub ShowSubFolders(Folder, recherche)
For Each Subfolder in Folder.SubFolders
If Subfolder.name = recherche Then
Wscript.Echo Subfolder.name
wscript.quit
Else
ShowSubFolders Subfolder, recherche
End If
Next
End Sub
Pourtant, j'ai beau faire, j'ai toujours une erreur de "permission" quand je cherche un dossier profondément comme dans :
"C:\Fichiers\..."
et que je met comme dossier source "C:"
Quelqu'un pourrait m'aider svp??
A voir également:
Recherche d'un dossier, et création d'un dossier dans ce dosser...
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 21 nov. 2007 à 20:06
Bonsoir,
Le script proposé est du vbs.
Merci, la prochaine fois, de poster dans le bon thème !
Quant à la permission, il faut outrepasser avec On Error Resume Next .
Option Explicit
Dim objFso, objRootFolder
Dim strRootPath, strSubFolder, strResult
strRootPath = "D:\SCRIPTS"
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objRootFolder = objFso.GetFolder(strRootPath)
Call SearchFolders(objRootFolder)
Msgbox strResult,,"Enumératon Sous-Répertoire(s) de " & strRootPath
Set objRootFolder = Nothing
Set objFso = Nothing
Sub SearchFolders(ArgFolder)
For Each strSubFolder In ArgFolder.SubFolders
On Error Resume Next ' permission
Call SelectFolder(strSubfolder)
Call SearchFolders(strSubfolder)
Next
End Sub
Sub SelectFolder(ArgFolder)
strResult = strResult &vbCrLf& ArgFolder
End Sub
djedjeska
Messages postés90Date d'inscriptionmercredi 21 novembre 2007StatutMembreDernière intervention25 mai 2013 21 nov. 2007 à 20:28
Mince ! comme cet la premiere fois que je demande quelque chose, je savais pas
exactement comment faire... J'ai cherché mais j'ai pas trouvé le thème"vbs"
Bref, la commande on error resume next permet de continuer la recherche?
Parce que à chaque fois que je cherchais un dossier qui n'était pas directement dans "C:" mais
dans un dossier de "C:" j'avais une erreur...
Dans le code, ou est stipulé le nom du dossier a chercher?
1)Vérification de l'existence d'un répertoire:
MsgBox ShowFolderExists("D:\SCRIPTS\Fichiers"),,"Contrôle existence Dossier"
MsgBox ShowFolderExists("D:\SCRIPTS\Fichiers"),,"Contrôle existence Dossier"
MsgBox ShowFolderExists("D:\SCRIPTS\Wichiers"),,"Contrôle existence Dossier"
MsgBox ShowFolderExists("D:\SCRIPTS\Wichiers"),,"Contrôle existence Dossier"
Function ShowFolderExists(strFolder)
Set objFso = WScript.CreateObject("Scripting.FileSystemObject")
If Right(strFolder,1)="" Then strFolder = Left(strFolder,Len(strFolder)-1)
strFolder = strFolder & ""
If objFso.FolderExists(strFolder) = True Then
ShowFolderExists = strFolder &vblf& "Le dossier existe"
Else
ShowFolderExists = strFolder &vblf& "Le dossier n'existe pas"
end If
Set objFso = Nothing
End Function
2) Création arborescence d'un répertoire:
Const racine = "D:\SCRIPTS\Fichiers"
MsgBox Verif_Folder(racine),,"Vérification du répertoire"
Function Verif_Folder(rac)
Dim objFso
Set objFso = CreateObject("Scripting.FileSystemObject")
If Not objFso.FolderExists(rac) Then
'Msgbox "la racine n existe pas"
Set objFso = Nothing
Exit Function
Else
'MsgBox "la racine existe"
Dim ext(3), i, f, result
ext(0) = "Pdr"
ext(1) = "DC"
ext(2) = "Qualif"
For i = 0 To UBound(ext)
result = result & ext(i)
If Not objFso.FolderExists(rac & result) Then objFso.CreateFolder(rac & result)
Next
Verif_Folder = rac & result
End If
Set objFso = Nothing
End Function
jean-marc
Vous n’avez pas trouvé la réponse que vous recherchez ?
djedjeska
Messages postés90Date d'inscriptionmercredi 21 novembre 2007StatutMembreDernière intervention25 mai 2013 21 nov. 2007 à 23:46
Oui ahah, jme suis rendu compte que j'avais été tro vite ...
En tout cas merci pour toutes ces réponses ! Je ne connaissais pas le "exit for"..
Si j'abusais je poserai une dernière question... Car là, je suis encore sur un
"paradoxe".
Je voudrais faire en sorte que quand le dossier recherché à été trouvé,
un dossier (différent) soit supprimé. J'utilise alors le "fso.deletefolder".
Pourtant, dans la procédure sub, ca ne marche pas :
Sub ShowSubFolders(Folder, recherche)
For Each Subfolder in Folder.SubFolders
On Error Resume Next
If Subfolder.name = recherche Then
ObjShell.Exec CheminWinRar & " a -r " & chr(34) & Subfolder.path & "" & nomduprojet & ".rar" & chr(34) & " " & chr(34) & RepSource & chr(34)
djedjeska
Messages postés90Date d'inscriptionmercredi 21 novembre 2007StatutMembreDernière intervention25 mai 2013 22 nov. 2007 à 00:06
Mince ca a buggé... Je disais,
j'avoue ne pas comprendre, je suis vraiment vraiment amateur
Les textbox m'affichent les emplacements et les fichiers à supprimer
mais mon dossier n'est toujours pas supprimé