Bonjour,

j'ai créé un script pour parcourrir une arborescence et identifier les "gros fichiers". Voici le code associé :

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
36
37
38
39
40
41
42
43
44
45
46
 
option explicit
 
'Variables
Dim Racine, InfoRep
Dim Size, NbFic
Dim FSO
 
'Initialisation
NbFic = 0
 
Set FSO = CreateObject("Scripting.FileSystemObject")
 
' Choix du répertoire/volume à auditer
Racine = InputBox("Nom du volume ou sous-répertoire racine ?","Question")
Set InfoRep = fso.GetFolder(Racine)
 
'Appel de la fonction de parcours récursif
ShowSubFolders InfoRep
 
WScript.Echo "Nombre de fichiers : " & NbFic
 
 
Function ShowSubFolders(Folder)
	Dim fic, fichiers, Subfolder
	' Liste des fichiers dans le répertoire courant
	On Error Resume Next
	Set fichiers = Folder.Files 
	If Err.number <> 0 Then
		wscript.Echo "Erreur pour lister les fichiers sous : " & Folder.path
	End If
	Err.clear
	On Error Goto 0
	For Each fic In fichiers
		On Error Resume Next
		' Recherche de la taille du fichier
		Size = fic.Size
		If fic.Size > 10000000 Then
			NbFic = NbFic + 1
		End If
	Next
	' Parcours récursif des sous-répertoires
 	For Each Subfolder in Folder.SubFolders
		ShowSubFolders Subfolder
	Next
End function
Mon problème :
Lorsque mon script arrive dans un sous-répertoire où je n'ai pas les droits d'accès (Parcours du dossier, Liste du dossier, Attribus de lecture), il s'arrête avec le message d'erreur suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Erreur d'exécution Microsoft VBScript: Permission refusée
Bien que je vérifie le retour de la fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Set fichiers = Folder.Files
, la gestion d'erreur n'en tient pas compte.

Ma question :
Comment puis-je vérifier avant de parcourir un sous-répertoire, que j'ai les droits d'accès pour le faire, puisque visiblement VBS ne gère pas ce type d'erreur ?

J'ai vu qu'il existe des méthodes de type "GetPermission", mais je n'arrive pas à les utiliser. Avez-vous une piste ?

Merci.