VBS - Comment passer outre l'erreur 800a0046 acces refusé

jakoo9 Messages postés 3 Date d'inscription vendredi 29 août 2008 Statut Membre Dernière intervention 2 octobre 2008 - 1 oct. 2008 à 14:29
jakoo9 Messages postés 3 Date d'inscription vendredi 29 août 2008 Statut Membre Dernière intervention 2 octobre 2008 - 2 oct. 2008 à 12:45
Bonjour,

Je cherche a lire plusieurs fichiers a l'aide d'un script VBS dans un répertoire, seulement je n'ai pas accès a tous les fichiers (permission NTFS).
Comment passer outre le message d'erreur (800a0046 permission refusé) et continuer la lecture des fichiers suivant ?

la commande On Error Resume Next n'a pas d'effet.

Voici mon code :

   Set FSO = CreateObject("Scripting.FileSystemObject")
   Set DossierSource = FSO.GetFolder(DIR_DATA)
  
   For Each fichier_a_lire In DossierSource.Files 
         
         Set FichierIMP = CreateObject("Scripting.FileSystemObject")
         Set Lecture_Fichier = FichierIMP.OpentextFile(fichier_a_lire,1)
           
         Do While NOT (Lecture_Fichier.AtEndOfStream=true)           
     
              On Error Resume Next
     
              Config_Printer = Split(Lecture_Fichier.readline(),";")         
              SS_Reseau =  Config_Printer(0) 
              Mappage =  Config_Printer(1) 
     
              Wscript.echo SS_Reseau & " ----> " & Mappage
        loop 
   
   Next

Merci de votre aide.

4 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
1 oct. 2008 à 15:06
Salut,
Est ce que cela reste sans effets meme si tu le place en dehors de la boucle?

   Set FSO = CreateObject("Scripting.FileSystemObject")
   Set DossierSource = FSO.GetFolder(DIR_DATA)

   On Error Resume Next
   For Each fichier_a_lire In DossierSource.Files
       
       Set FichierIMP = CreateObject("Scripting.FileSystemObject")
       Set Lecture_Fichier = FichierIMP.OpentextFile(fichier_a_lire, 1)
           
       Do While Not (Lecture_Fichier.AtEndOfStream = True)
   
           Config_Printer = Split(Lecture_Fichier.readline(), ";")
           SS_Reseau = Config_Printer(0)
           Mappage = Config_Printer(1)
     
           Wscript.echo SS_Reseau & " ----> " & Mappage
       Loop
   
   Next , ----
[../code.aspx?ID=41455 By Renfield]

@+: Ju£i€n
Pensez: Réponse acceptée
0
jakoo9 Messages postés 3 Date d'inscription vendredi 29 août 2008 Statut Membre Dernière intervention 2 octobre 2008
1 oct. 2008 à 15:21
Si je place "On Error Resume Next" avant ou apres la commande FOR
La boucle FOR n'est plus executé

Jakoo9
0
DavidWhitewater Messages postés 81 Date d'inscription lundi 10 avril 2006 Statut Membre Dernière intervention 1 janvier 2010
1 oct. 2008 à 19:39
Essai ca :


Set FSO = CreateObject("Scripting.FileSystemObject")
Set DossierSource = FSO.GetFolder(DIR_DATA)
  
For Each fichier_a_lire In DossierSource.Files
  On Error Resume Next
  Set Lecture_Fichier = FSO.OpentextFile(fichier_a_lire,1)
    If Err.Number = 0 Then
        Do While NOT (Lecture_Fichier.AtEndOfStream=true)  
              Config_Printer = Split(Lecture_Fichier.readline(),";")         
              SS_Reseau =  Config_Printer(0) 
              Mappage =  Config_Printer(1) 
              Wscript.echo SS_Reseau & " ----> " & Mappage           
        Loop
    End if 
Next

Chez moi ca marche.
0
jakoo9 Messages postés 3 Date d'inscription vendredi 29 août 2008 Statut Membre Dernière intervention 2 octobre 2008
2 oct. 2008 à 12:45
J'ai essayé mais rien n'y fais !
Par contre ce matin j'ai trouvé la solution :

Sub Lecture_fich_imp (Lecture_Fichier,ByRef SS_Reseau,ByRef Mappage)


 


  If (Err.Number = 0) then 
       Do While NOT (Lecture_Fichier.AtEndOfStream=true) 
         
          Config_Printer = Split(Lecture_Fichier.readline(),";")         
          SS_Reseau =  Config_Printer(0) 
          Mappage =  Config_Printer(1) 
              
      Loop


 


  End IF 


 



End Sub













On Error Resume Next
   For Each fichier_a_lire In DossierSource.Files 
       
      Set FichierIMP = CreateObject("Scripting.FileSystemObject")
      Set Lecture_Fichier = FichierIMP.OpentextFile(fichier_a_lire,1)
      
      Lecture_fich_imp Lecture_Fichier,SS_Reseau,Mappage
      
     Err.Clear
 Next

A priori la commande On Error Resume Next faisait échouer la boucle IF.

Merci à tous pour votre aide.

Jakoo9
0
Rejoignez-nous