Suppression de fichiers listé dans un fichier texte

huby40one Messages postés 2 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 2 octobre 2006 - 2 oct. 2006 à 10:07
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 2 oct. 2006 à 14:04
Bonjour à la communauté,

J'expose mon probleme,

J'ai dans un fichier texte (.txt), une liste de fichier (jpg pour la plus part).
Dans un Dossier (Uploads), j'ai un certains nombres de fichiers dont les fichiers à supprimé compris dans ce fichier txt.

Voilà j'aimerai savoir comment proceder pour faire un script qui aprcours mon fichier txt et qu'il aille supprimer dans ce dossier le fichiers correspondant.

La liste comprend plus de 5500 fichiers... vous comprenez que je ne peux pas aller supprimer un à un les fichiers.

je remercie d'avance les personne qui pourront me guider et m'aider sur ce probleme

Cordialement
Huby

3 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
2 oct. 2006 à 10:46
Salut,


Essaie le code suivant, en espérant qu il réponde à tes besoins.
Les noms des fichiers a supprimer sont dans mon exemple contenu dans C:\A_Supprimer.txt sous la forme

C:\toto.xls
C:\Test\Tp.jpg
....








'Ligne lu dans le fichier


Dim TmpFichier As String 
Dim NumFile As Integer 
NumFile = FreeFile 

'OUvre le fichier en lecture
Open "C:\A_Supprimer.txt" For Input As NumFile 
    'Boucle pour parcourir tout le fichier
    While Not EOF(NumFile) 
        'Recuperation ligne par ligne
        '(Chaque ligne contenant UN chemin de fichier a supprimer)
        Line Input #NumFile, TmpFichier 
        'Suppression du fichier si il existe
        If (Dir(TmpFichier) <> "") Then Call Kill(TmpFichier) 

    Wend 
'Fermeture du fichier
Close NumFile 
 







<small> Coloration syntaxique automatique [AFCK]</small>

       









 






@+,   Ju£i?n
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
2 oct. 2006 à 13:03
 Bonjour,

Exemple à transformer en vb6 (au hasard, par Julien  !!! - bonjour au passage - si il a le temps):

Option Explicit
Dim Fso, Path1, Fic1, Path2
Dim i, ObjTextStream, strtmpConst ForReading 1, ForWriting 2, ForAppending=8



Path1   = "d:\huby40one"
Path2   = "d:\huby40one\UpLoad"



Fic1  = "Liste des fichiers a supprimer.txt"



Set fso = CreateObject("Scripting.FileSystemObject")
Set ObjTextStream = Fso.OpenTextFile(Path1 & Fic1, 1)
Do While Not ObjTextStream.AtEndOfStream
   strtmp = split(ObjTextStream.ReadLine, vbLf)
   For i = 0 to Ubound(strtmp)
       If Fso.FileExists(Path2 & strtmp(i)) Then Fso.DeleteFile Path2 & strtmp(i)
   Next
Loop
ObjTextStream.Close



Set Fso = Nothing
Set ObjTextStream = Nothing

jean-marc
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
2 oct. 2006 à 14:04
Salut 9517 JMO

En VB6 (cela sera tres proche).
J'ai choisi de mettre la référence Microsoft Scripting Runtime (pour avoir les menu déroulant)

Cela donnerait( si je ne me trompe pas car je n'ai pas testé) mais de toute facon ton code passe directement en VB6 sans aucune modifications necessaire je crois

Option Explicit 

Private Sub Form_Load() 
Dim Fso As New FileSystemObject 
Dim Path1 As String, Fic1 As String, Path2 As String 
Dim i As Integer 
Dim ObjTextStream As TextStream 
Dim Contenu As String 
Dim Lignes 

    Path1  = "d:\huby40one" 
    Path2 =  "d:\huby40one\UpLoad" 
    Fic1 = "Liste des fichiers a supprimer.txt" 

    'Ouverture du fichier en lecture
    Set ObjTextStream = Fso.OpenTextFile(Path1 & Fic1, ForReading) 
    'recuperation du contenu du fichier
    Contenu = ObjTextStream.ReadAll 
    'Fermeture du fichier
    Call ObjTextStream.Close 
    'Recuperation de toutes les lignes par split du contenu
    Lignes = Split(Contenu, vbCrLf) 
    'Boucle pour chaque ligne
    For i = 0 To  UBound (Lignes) 
        If Fso.FileExists(Path2 & Lignes(i)) Then Call Fso.DeleteFile(Path2 & Lignes(i)) 
    Next 
    'destruction des objets
    Set ObjTextStream  = Nothing 
    Set Fso = Nothing 
End Sub 

 

<small> Coloration syntaxique automatique [AFCK]</small>
       

@+,   Ju£i?n
0
Rejoignez-nous