Bonjour à tous,

J'ai un petit problème sur une boucle For, du moins j'ai besoin d'un œil extérieur car je n'arrive pas à trouver une solution à mon problème qui paradoxalement je pense est simple...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
			Dim ItemsSTD As New List(Of String)
				For Each item As SDef In AListbox.SelectedItems
					ItemsSTD.Add((Item.SPath) + "\" + (Item.SName))
					Dim FTD As String = (Item.SPath) + "\" + (Item.SName)
					If System.IO.File.Exists(FTD) = True Then
						If CInt(Forms.MessageBox.Show("Vous êtes sûr ? ", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation)) = Windows.Forms.DialogResult.Yes Then
							My.Computer.FileSystem.DeleteFile(FTD, Microsoft.VisualBasic.FileIO.UIOption.OnlyErrorDialogs, Microsoft.VisualBasic.FileIO.RecycleOption.SendToRecycleBin, Microsoft.VisualBasic.FileIO.UICancelOption.ThrowException) 'Fichier envoyé à la corbeille 
							Forms.MessageBox.Show("Fichier(s) supprimé(s)")
						Else
							FTD = Nothing 'Ne rien faire
							Forms.MessageBox.Show("Fichier(s) non supprimé(s)")
						End If	
					End If	
				Next
La boucle fonctionne très bien sauf qu'évidement si je supprime plusieurs fichiers (items) simultanément alors je reçois le message
Code : Sélectionner tout - Visualiser dans une fenêtre à part
CInt(Forms.MessageBox.Show("Vous êtes sûr ? ", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation)) = Windows.Forms.DialogResult.Yes
à chaque suppression, ce qui est normal vu qu'il est dans la boucle. Je voudrai en fait que le MessageBox ne s'affiche qu'une seule fois pour tous les fichiers sélectionnés et non pas une fois pour chaque fichiers supprimés (10 suppressions = 10 MessageBox, or je voudrai qu'un seul MessageBox). J'ai essayé de le sortir de la boucle comme ceci et j'ai remplacé FTD par ItemsSTD :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
			Dim ItemsSTD As New List(Of String)
				For Each item As SDef In AListbox.SelectedItems
					ItemsSTD.Add((Item.SPath) + "\" + (Item.SName))
					'Dim FTD As String = (Item.SPath) + "\" + (Item.SName)
				Next
					If System.IO.File.Exists(itemsSTD) = True Then
						If CInt(Forms.MessageBox.Show("Vous êtes sûr ? ", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation)) = Windows.Forms.DialogResult.Yes Then
							My.Computer.FileSystem.DeleteFile(ItemsSTD, Microsoft.VisualBasic.FileIO.UIOption.OnlyErrorDialogs, Microsoft.VisualBasic.FileIO.RecycleOption.SendToRecycleBin, Microsoft.VisualBasic.FileIO.UICancelOption.ThrowException) 'Fichier envoyé à la corbeille 
							Forms.MessageBox.Show("Fichier(s) supprimé(s)")
						Else
							ItemsSTD = Nothing 'Ne rien faire
							Forms.MessageBox.Show("Fichier(s) non supprimé(s)")
						End If	
					End If
Donc avec ma boucle je remplis "ItemsSTD" puis j'utilise FileSystem.DeleteFile pour supprimer et envoyer à la corbeille le/les fichier(s) sélectionné(s)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
My.Computer.FileSystem.DeleteFile(ItemsSTD, Microsoft.VisualBasic.FileIO.UIOption.OnlyErrorDialogs, Microsoft.VisualBasic.FileIO.RecycleOption.SendToRecycleBin, Microsoft.VisualBasic.FileIO.UICancelOption.ThrowException)
sauf que FileSystem.DeleteFile ne fonctionne qu'avec des strings et non des listes de strings... donc ne fonctionne pas...
Si quelqu'un peut m'aider svp je lui en serai grandement reconnaissant !

(Sinon je peux utiliser FileSystem.DeleteFile de cette manière
Code : Sélectionner tout - Visualiser dans une fenêtre à part
My.Computer.FileSystem.DeleteFile(ItemsSTD, Microsoft.VisualBasic.FileIO.UIOption.AllDialogs, Microsoft.VisualBasic.FileIO.RecycleOption.SendToRecycleBin, Microsoft.VisualBasic.FileIO.UICancelOption.ThrowException)
et dans ce cas je n'ai pas besoin d'utiliser de MessageBox pour demander si oui ou non on veut supprimer le fichier, j'ai donc une fenêtre windows qui s'ouvre me le demandant directement.)