Exception vb.net

Logiinx - 29 nov. 2013 à 22:14
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 3 déc. 2013 à 20:06
Bonjour, j'ai fais un petit logiciel pour supprimer des fichiers dans un dossier, or un fichier est protégé et je cherche a supprimer tout le dossier SAUF lui mais je ne trouve pas comment faire ou faire une exception ! merci de m'aider !

4 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
29 nov. 2013 à 22:45
Bonsoir,

Tu peux toujours te faire ta fonction de suppression récursive.
Ensuite, tu peux ajouter un paramètre pour dire quel(s) fichier(s) ne pas supprimer.

Si tu veux plus d'aide, montres ce que tu as déjà commencé.
0
Dim PATHDOSSIER As String = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) & "\Microsoft\Media Player"

If System.IO.Directory.Exists(PATHDOSSIER) Then
For Each files As String In System.IO.Directory.GetFiles(PATHDOSSIER)
System.IO.File.Delete(files)
Next
End If
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
30 nov. 2013 à 18:54
As-tu essayé :
If files="..." Then ...
?
0
En fait, je ne connais pas tous les noms des fichiers donc je veux tous les supprimer sauf un dont le nom est le même pour tous et c'est donc ici que je bloque !
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
30 nov. 2013 à 23:39
"dont le nom est le même pour tous"
Là, un exemple serait souhaitable, car je ne vois pas du tout comment filtrer le nom spécifique avec aussi peu d'information.
0
le nom du fichier est "CurrentDatabase_372" qui est un fichier de WMP
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
2 déc. 2013 à 18:56
Tu as dis que tu ne connaissais pas le nom à l'avance, comment as-tu pus déterminer que c'était ce fichier à conserver ?
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
2 déc. 2013 à 22:39
Bonjour

Private Sub DeleteAndKeepFiles(ByVal dir As String, ByVal keepfile As String)
Try
For Each file As String In Directory.GetFiles(dir)
Dim info As New FileInfo(file)
If info.Name <> keepfile Then
IO.File.Delete(file)
End If
Next
For Each SUBDIR As String In Directory.GetDirectories(dir)
DeleteFiles(SUBDIR, keepfile)
Next
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
'pour utiliser
Dim PATHDOSSIER As String = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) & "\Microsoft\Media Player" 

If System.IO.Directory.Exists(PATHDOSSIER) Then
DeleteAndKeepFiles(PATHDOSSIER,"CurrentDatabase_372.WMP")
0
Merci beaucoup
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 3/12/2013 à 20:07
Si cs_ShayW (que je salue) t'a donné la réponse attendue, il convient (rappel) de libérer ce sujet en cliquant sur le tag RESOLU au niveau de ton tout premier message.
0
Rejoignez-nous