Effacer un/les fichier [Résolu]

Signaler
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
-
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
-
Bonjour à tous

J'ai écrit une routine pour effacer tous les
fichiers avec extension old

Private Sub DeleteFiles(ByVal D As String, ByVal extension As String)
        Try
            For Each file As String In Directory.GetFiles(D, extension)
                list1.Items.Add(file)
                Directory.Delete(file)
            Next
            For Each SUBDIR As String In Directory.GetDirectories(D)
                DeleteFiles(SUBDIR, extension)
            Next
        Catch ex As Exception
            'MessageBox.Show(ex.Message)
        End Try

    End Sub


DeleteFiles("C:", "*.old")


le problème est que les fichiers ne sont pas
effacés

Merci

8 réponses

Messages postés
420
Date d'inscription
vendredi 17 novembre 2006
Statut
Membre
Dernière intervention
15 juillet 2014
5
Bonjour,

Peut être en remplacent

Directory.Delete(file)


Par

File.Delete(file)
Messages postés
14733
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 octobre 2020
146
Bonjour,

As-tu essayé en pas à pas pour voir si le code est correctement exécuté ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
Salut

Ton Catch est désactivé, donc tu ne vois pas les erreurs.
Remets en service la MessageBox

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Faut arrêter cette manie de mettre des Try..Catch partout (c'est à cause d'eux qu'on ne peut plus identifier les erreurs)
Tu peux aussi éviter ta récursivité avec
Directory.GetFiles(D, Extensions, SearchOption.AllDirectories)



_____________
Kenji
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
merci à vous deux
j'ai trouvé
avec le catch j'obtiens le message
directory name is invalid
au lieu de
Directory.Delete(file)


il faut écrire si je veux effacer un fichier
System.IO.File.Delete(file)
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Bonjour Charles
avec
Directory.GetFiles(D, Extensions, SearchOption.AllDirectories) 

cela fonctionne si D est un directory
For Each file As String In Directory.GetFiles("C:\WINDOWS", extension, SearchOption.AllDirectories)
                list1.Items.Add(file)
                'System.IO.File.Delete(file)
            Next


mais si j'écris
Directory.GetFiles("C:", extension, SearchOption.AllDirectories)

la loop for n'est pas executé
avec l'exception
Acess to the path C:\SYSTEM volume information is denied
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
@ ShayW
Si tu as une erreur, c'est que quelque cloche !
Il te dit que le répertoire n'est pas valide : As-tu regardé ce que contient ta variable D à ce moment là ?
Faut avoir un minimum de logique
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Salut jack

c'est bon j'ai corrigé