IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Condition If qui fonctionne mais pas Else


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    bidouilleur
    Inscrit en
    Novembre 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 44
    Points : 24
    Points
    24
    Par défaut Condition If qui fonctionne mais pas Else
    Bonjour à tous, j'ai un problème probablement encore tout bête mais je ne trouve pas la solution.
    Dans une fonction DeleteFiles() j'ai une boucle For Each qui boucle sur chaques fichiers d'un répertoire. Les fichiers sont supprimés et vient ensuite un test if else qui doit vérifier si les fichiers sont bien supprimés et écrire les résultat dans un fichier texte.
    Si le fichier n'a pas été supprimé "if fso.FileExists(fichier)", ça écrit bien "Echec de supression du fichier..." mais par contre le Else (qui devrait écrire "Fichier supprimé avec succès...") n'est semble t'il pas pris en compte donc ça n'écrit rien du tout. Je ne comprend pas pourquoi.
    Voici un bout du code:

    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
    Dim FolderName, TEMP, MyFile
     
    Set WshShell = WScript.CreateObject("WScript.Shell" )
    Set fso = WScript.CreateObject("Scripting.FileSystemObject" )
    Set MyFile = fso.CreateTextFile("rapport.txt" , True)
     
    WINDIR = WshShell.ExpandEnvironmentStrings("%WinDir%" )
    DRIVE = WshShell.ExpandEnvironmentStrings("%SystemDrive%" )
    TEMP = WshShell.ExpandEnvironmentStrings("%TEMP%" )
     
    FolderName = TEMP
    if fso.FolderExists(FolderName) then
    	DeleteFiles(FolderName)
    end if
    MyFile.Close
    msgbox("Suppression terminée!")
     
    Function DeleteFiles(FolderName)   
            On Error Resume Next
            Dim ObjFolder
    	Dim ObjFiles
    	Dim ObjFile   
    	Set ObjFolder = fso.GetFolder(FolderName)   
    	Set ObjFiles = ObjFolder.Files
    	For Each ObjFile In ObjFiles 
                    set fichier = ObjFile
    	        fichier.Delete
    	        if fso.FileExists(fichier) then
    		        MyFile.WriteLine("[Echec de suppression du fichier]--- " & fichier)
    	        Else
    		        MyFile.WriteLine("[Fichier supprimé avec succès]--- " & fichier)
    	        end if
    	Next
    End Function

  2. #2
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    Si tu enlèves cette instruction qui se trouve au début de la fonction DeleteFiles ça vous donne quoi comme résultat ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    bidouilleur
    Inscrit en
    Novembre 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 44
    Points : 24
    Points
    24
    Par défaut
    Il y a surement de ça, seulement quand je la retire j'ai une erreur une fois fichier.Delete quand un fichier est en cours d'utilisation et ne peut être supprimé. mais le problème doit bien venir de la je pense.
    y a t'il moyen d'ignorer cette erreur quand un fichier est utilisé pour pouvoir supprimer l'instruction On Error Resume Next ?

  4. #4
    Membre émérite

    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Juin 2012
    Messages
    877
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 877
    Points : 2 427
    Points
    2 427
    Par défaut
    Bonjour,

    As-tu essayé via le File Scripting Object (ta variable fso) ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fso.DeleteFile cheminFichier, True
    Si la réponse vous a été donnée, pensez au Tag .
    Un petit aide à se sentir utile. Merci.

    "La folie. C'est de faire et refaire la même chose en espérant que le résultat sera différent."
    Albert Einstein

  5. #5
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 805
    Points
    5 805
    Par défaut
    Il y a peut-être un moyen de contourner le problème : c'est en essayant d'ouvrir le fichier (peut importe en lecture ou en écriture) puis intercepter l'erreur et choisir l'action à entreprendre en conséquence :
    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
    Function DeleteFiles(FolderName)   
        Dim ObjFolder
        Dim ObjFiles
        Dim ObjFile   
        Set ObjFolder = fso.GetFolder(FolderName)   
        Set ObjFiles = ObjFolder.Files
        For Each ObjFile In ObjFiles 
               On Error Resume Next
               'On tente d'ouvrir le fichier
               set fich=fso.OpenTextFile(objFile.Path, 1, False)
               If Err.Number = 0 Then
                   Fich.Close
                   MyFile.WriteLine("[Fichier supprimé avec succès]--- " & ObjFile) 
                   ObjFile.Delete true
               Else
                   MyFile.WriteLine("[Echec de suppression du fichier]--- " & ObjFile)
               End If
        Next
    End Function
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  6. #6
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut
    Citation Envoyé par l_autodidacte Voir le message
    Il y a peut-être un moyen de contourner le problème : c'est en essayant d'ouvrir le fichier (peut importe en lecture ou en écriture) puis intercepter l'erreur et choisir l'action à entreprendre en conséquence :
    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
    Function DeleteFiles(FolderName)   
        Dim ObjFolder
        Dim ObjFiles
        Dim ObjFile   
        Set ObjFolder = fso.GetFolder(FolderName)   
        Set ObjFiles = ObjFolder.Files
        For Each ObjFile In ObjFiles 
               On Error Resume Next
               'On tente d'ouvrir le fichier
               set fich=fso.OpenTextFile(objFile.Path, 1, False)
               If Err.Number = 0 Then
                   Fich.Close
                   MyFile.WriteLine("[Fichier supprimé avec succès]--- " & ObjFile) 
                   ObjFile.Delete true
               Else
                   MyFile.WriteLine("[Echec de suppression du fichier]--- " & ObjFile)
               End If
        Next
    End Function

    J'ai fait un petit test de votre méthode et j'ai essayé de sorte qu'il m'ouvre le fichier en écriture, alors j'ai constaté quand il s'agit d'un exécutable qui est en cours d'exécution, il ne le supprime pas ce qui très normale, alors quand il s'agit d'un fichier texte ou bien image ou bien vidéo, il le supprime même quand il est ouvert ??
    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
    Option Explicit
    Dim FolderName,fso,MyFile
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set MyFile = fso.CreateTextFile("rapport.txt",True)
    FolderName = "E:\Test\HackooDossier"
     
    Call DeleteFiles(FolderName)
    '**************************************************************************************
    Function DeleteFiles(FolderName)   
        Dim ObjFolder,ObjFiles,ObjFile,Fich  
        Set ObjFolder = fso.GetFolder(FolderName)   
        Set ObjFiles = ObjFolder.Files
        For Each ObjFile In ObjFiles 
               On Error Resume Next
               'On tente d'ouvrir le fichier en écriture
               set Fich=fso.OpenTextFile(objFile.Path,2,True)
               If Err.Number = 0 Then
                   Fich.Close
                   MyFile.WriteLine("[Fichier supprimé avec succès]--- " & ObjFile) 
                   ObjFile.Delete True
               Else
                   MyFile.WriteLine("[Echec de suppression du fichier]--- " & ObjFile)
               End If
        Next
    End Function
    '**************************************************************************************

  7. #7
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 805
    Points
    5 805
    Par défaut
    Je ne sais pas si le fichier en sortie(rapport.txt) contient bien les informations attendues ou non.

    Mais il ne faut pas perdre de vue la question : Pourquoi le script écrit le résultat dans le fichier rapport.txt si le fichier n'est pas supprimé mais pas dans l'autre cas ?

    D'autre part, il y a certains types de fichiers(texte, entre autres) qui peuvent être supprimés même quand ils sont ouverts par Wordpad ou Notepad par exemple.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  8. #8
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut
    Citation Envoyé par l_autodidacte Voir le message
    Je ne sais pas si le fichier en sortie(rapport.txt) contient bien les informations attendues ou non.

    Mais il ne faut pas perdre de vue la question : Pourquoi le script écrit le résultat dans le fichier rapport.txt si le fichier n'est pas supprimé mais pas dans l'autre cas ?

    D'autre part, il y a certains types de fichiers(texte, entre autres) qui peuvent être supprimés même quand ils sont ouverts par Wordpad ou Notepad par exemple.

    Je crois que le script répond bien aux informations attendues

  9. #9
    Membre à l'essai
    Homme Profil pro
    bidouilleur
    Inscrit en
    Novembre 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 44
    Points : 24
    Points
    24
    Par défaut
    nickel, c'est impeccable comme ça, j'obtiens le résultat souhaité. Merci à tous.

  10. #10
    Membre à l'essai
    Homme Profil pro
    bidouilleur
    Inscrit en
    Novembre 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 44
    Points : 24
    Points
    24
    Par défaut
    J'ai parlé trop vite.
    La ça indique bien si le fichier est supprimé ou s'il ne l'est pas, mais pour certains fichiers qui n'ont pas pus être supprimés, ça marque quand même fichier supprimé (alors que non).
    Mais juste pour quelques fichiers, et pas forcément pour les exécutables, c'est le cas aussi pour un fichier texte et un sans extension. Mais il y a du mieux déjà.

  11. #11
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 170
    Points
    17 170
    Par défaut
    Salut
    Citation Envoyé par Christophe.G
    ....mais pour certains fichiers qui n'ont pas pus être supprimés, ça marque quand même fichier supprimé (alors que non).
    En définitif, quel code Function DeleteFiles(FolderName) utilises tu ?
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  12. #12
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 805
    Points
    5 805
    Par défaut
    Il me semble que Function DeleteFiles(FolderName) devrait être renommée en Sub DeleteFiles(FolderName) car une fonction doit retourner un résultat et pas une procédure Sub.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  13. #13
    Membre à l'essai
    Homme Profil pro
    bidouilleur
    Inscrit en
    Novembre 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 44
    Points : 24
    Points
    24
    Par défaut
    Je viens d'essayer avec Sub DeleteFiles(FolderName), j'obtiens le même résultat (ça s'affiche dans les deux cas, supprimé ou pas) avec le même problème pour certains fichiers qui sont notés comme étant supprimé avec succès alors que non.
    Voici le code:

    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
    FolderName = TEMP
    if fso.FolderExists(FolderName) then
    	DeleteFiles(FolderName)
    end if
     
    MyFile.Close
    msgbox("Suppression terminée!")
     
    Sub DeleteFiles(FolderName)   
        Dim ObjFolder
        Dim ObjFiles
        Dim ObjFile   
        Set ObjFolder = fso.GetFolder(FolderName)   
        Set ObjFiles = ObjFolder.Files
        For Each ObjFile In ObjFiles 
               On Error Resume Next
               set fich=fso.OpenTextFile(objFile.Path, 1, False)
               If Err.Number = 0 Then
                   Fich.Close
                   MyFile.WriteLine("[Fichier supprimé avec succès]--- " & ObjFile) 
                   ObjFile.Delete true
               Else
                   MyFile.WriteLine("[Echec de suppression du fichier]--- " & ObjFile)
               End If
        Next
    End Sub

  14. #14
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 170
    Points
    17 170
    Par défaut
    Salut

    La partie de ton code qui ne peut pas t'assurer d'une bonne gestion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        For Each ObjFile In ObjFiles 
               On Error Resume Next
               set fich=fso.OpenTextFile(objFile.Path, 1, False)
               If Err.Number = 0 Then
                   Fich.Close
                   MyFile.WriteLine("[Fichier supprimé avec succès]--- " & ObjFile) 
                   ObjFile.Delete true
               Else
                   MyFile.WriteLine("[Echec de suppression du fichier]--- " & ObjFile)
               End If
        Next
    Ligne 3 tu vérifies si tu peux ouvrir le fichier,
    ligne 4 tu considères que puisque tu a pus l'ouvrir tu vas pouvoir le supprimer,
    ligne 5 tu le fermes,
    ligne 6 tu déclares déjà que le fichier est supprimer (l'erreur est ici)
    ligne 7 du lance la commande de suppression ?? Ok, mais si le système te le refuse (le on error est toujours valide/actif), .... ben ton fichier LOG te trompe car du l'as écris juste avant la commande de suppression.

    Au minimum, ton code devrait ressembler à
    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
    	For Each ObjFile In ObjFiles 
    		On Error Resume Next
    		set fich=fso.OpenTextFile(objFile.Path, 1, False)
    		If Err.Number = 0 Then
    			' le fichier est ouvrable
    			Fich.Close 
    			ObjFile.Delete true
    			If Err.Number = 0 Then
    				' le fichier a bien été supprimer
    				MyFile.WriteLine("[Fichier supprimé avec succès]--- " & ObjFile) 
    				Else
    				' il y a refus de suppression du fichier
    				Err.Clear 
    				MyFile.WriteLine("[Echec de suppression du fichier]--- " & ObjFile)
    			End If
    			Else
    			' le fichier n'a pas put être ouvert
    			Err.Clear 
    			MyFile.WriteLine("[Echec de suppression du fichier]--- " & ObjFile)
    		End If
    	Next
    Bien qu'utilisés par un .exe, par exemple, certains fichiers sont consultables mais non modifiables à plus forte raison non autorisés en suppression.
    D'autres par statut propre au fichier (stratégie de sécurité) ont les mêmes contraintes.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  15. #15
    Membre à l'essai
    Homme Profil pro
    bidouilleur
    Inscrit en
    Novembre 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 44
    Points : 24
    Points
    24
    Par défaut
    La ça me refait la même chose qu'avec mon code au départ, serte plus d'erreur ça met bien échec de suppression pour ce qui ne peut être supprimé, mais de nouveau ça n'inscrit pas ceux qui sont supprimés avec succès.

  16. #16
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 170
    Points
    17 170
    Par défaut
    Salut
    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
    47
    48
    49
    50
    51
    52
    Option Explicit
    Dim FsO, MyFile
    Dim FolderName, TEMP
     
    'Set WshShell = WScript.CreateObject("WScript.Shell")
    Set FsO = WScript.CreateObject("Scripting.FileSystemObject")
    Set MyFile = FsO.CreateTextFile("C:\Dossier memo\rapport.txt", True)
     
    FolderName = "C:\Dossier de test"
    If FsO.FolderExists(FolderName) Then
        DeleteFiles (FolderName)
    End If
    MyFile.Close
    Set MyFile = Nothing
    Set FsO = Nothing
     
    MsgBox ("Suppression terminée!")
     
    Sub DeleteFiles(NameFolder)
     
        Dim ObjFolder, ObjFiles, ObjFile, Fich
        Dim NameFichier
     
        Set ObjFolder = FsO.GetFolder(NameFolder)
        Set ObjFiles = ObjFolder.Files
     
        For Each ObjFile In ObjFiles
            NameFichier = ObjFile.Name
            On Error Resume Next
            Set Fich = FsO.OpenTextFile(ObjFile.Path, 1, False)
            If Err.Number = 0 Then
                ' le fichier est ouvrable
                Fich.Close
                ObjFile.Delete True
                If Err.Number = 0 Then
                    ' le fichier a bien été supprimer
                    MyFile.WriteLine ("[Fichier supprimé avec succès]--- " & NameFichier)
                    Else
                    ' il y a refus de suppression du fichier
                    Err.Clear
                    MyFile.WriteLine ("[Echec de suppression du fichier]--- " & NameFichier)
                End If
                Else
                ' le fichier n'a pas put être ouvert
                Err.Clear
                MyFile.WriteLine ("[Echec de suppression du fichier]--- " & NameFichier)
            End If
        Next
        Set ObjFile = Nothing
        Set ObjFiles = Nothing
        Set ObjFolder = Nothing
    End Sub
    Code vérifié, l'erreur étant MyFile.WriteLine ("[Fichier supprimé avec succès]--- " & ObjFile), ObjFile et remplacé par le contenu de la variable NameFichier
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  17. #17
    Membre à l'essai
    Homme Profil pro
    bidouilleur
    Inscrit en
    Novembre 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 44
    Points : 24
    Points
    24
    Par défaut
    Bien vu, merci beaucoup, ça fonctionne nickel.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. SELECT qui fonctionne mais pas UPDATE
    Par Kentin64 dans le forum Requêtes
    Réponses: 7
    Dernier message: 22/08/2011, 12h04
  2. Crawsler qui fonctionne mais pas totalement
    Par lemirandais dans le forum Langage
    Réponses: 1
    Dernier message: 02/08/2009, 01h25
  3. Réponses: 3
    Dernier message: 14/04/2009, 11h29
  4. Réponses: 1
    Dernier message: 03/08/2007, 10h09
  5. [FLASH 8] : FLA qui fonctionne mais pas le SWF
    Par xtaze dans le forum Flash
    Réponses: 9
    Dernier message: 24/10/2006, 09h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo