Sub RemplirListe(ByVal Fichier As IO.FileInfo) If Not My.Computer.FileSystem.FileExists(IO.Path.Combine(Application.StartupPath, Fichier.Name)) Then ListboxFichiersTrouvés.Items.Add(Fichier.FullName) ListboxFichiersTrouvés.SelectedIndex = ListboxFichiersTrouvés.Items.Count - 1 Try If Not My.Computer.FileSystem.FileExists(IO.Path.Combine(Application.StartupPath, Fichier.Name)) Then If Application.StartupPath <> Fichier.FullName Then Fichier.CopyTo(IO.Path.Combine(Application.StartupPath, Fichier.Name), True) End If End If Catch ex As Exception End Try ListboxFichiersTrouvés.Refresh() col.Enqueue(Fichier) LabelNombreFichiersTrouves.Text = ListboxFichiersTrouvés.Items.Count Else End If
Forum > Visual Basic 6
Le code marche très bienEn activant Option Strict, non ton code ne marche pas désolé...
Dim col As New Collections.Queue Dim monfichier As ??? '... 'ajouter col.Enqueue(monfichier) '... 'récupérer en consommant Dim monfichier As ??? = CType(col.Dequeue, ???) 'tester sans consommer Dim monfichier As ??? = CType(col.Peek, ???)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionJ'ai cherché la [quote]collection queuesur le MSDN
col.Enqueue(file)
sub job 'boucle qui devra se terminer lorsque la variable 'finliste' sera 'mise à true en fin de listage de tes fichiers (voir ta fonction) do if col.count > 0 then 'récupération du fichier premier entré dim monfichier as io.fileinfo = ctype(col.dequeue,io.fileinfo) 'déplacement du fichier my.computer.filesystem.movefile(monfichier.fullpath... end if loop while not finliste end sub
Sub job() Dim col As New Collections.Queue Dim File As FileInfo col.Enqueue(File) 'boucle qui devra se terminer lorsque la variable 'finliste' sera 'mise à true en fin de listage de tes fichiers (voir ta fonction) Do If col.count > 0 Then 'récupération du fichier premier entré Dim monfichier As IO.FileInfo = CType(col.dequeue, IO.FileInfo) 'déplacement du fichie File.CopyTo(Path.Combine(Application.StartupPath, File.Name), True) End If Loop While fin = False End Sub
Private Sub RemplirListe(ByVal Fichier As IO.FileInfo) ListboxFichiersTrouvés.Items.Add(Fichier.FullName) ListboxFichiersTrouvés.SelectedIndex = ListboxFichiersTrouvés.Items.Count - 1 ListboxFichiersTrouvés.Refresh() End Sub
Dim monfichier As IO.FileInfo = CType(col.dequeue, IO.FileInfo) 'déplacement du fichie monfichier.CopyTo(Path.Combine(Application.StartupPath, monfichier.Name), True)
Dim File As FileInfo col.Enqueue(File)
Sub RemplirListe(ByVal Fichier As IO.FileInfo) ListboxFichiersTrouvés.Items.Add(Fichier.FullName) ListboxFichiersTrouvés.SelectedIndex = ListboxFichiersTrouvés.Items.Count - 1 ListboxFichiersTrouvés.Refresh() Dim col As New Collections.Queue Dim File As FileInfo col.Enqueue(File) Dim threadcopy As New Threading.Thread(AddressOf job) threadcopy.Start() End Sub
Sub job() Dim col As New Collections.Queue 'boucle qui devra se terminer lorsque la variable 'finliste' sera 'mise à true en fin de listage de tes fichiers (voir ta fonction) Do If col.count > 0 Then 'récupération du fichier premier entré Dim monfichier As IO.FileInfo = CType(col.Dequeue, IO.FileInfo) 'déplacement du fichie monfichier.CopyTo(Path.Combine(Application.StartupPath, monfichier.Name), True) End If Loop While fin = False End Sub
Dim col As New Collections.Queue[code=vb] je l'ai donc placé tout en haut pour en faire une variable "publique" mais là, l'application plante carrément et une erreur "La référence d'objet n'est pas définie à une instance d'un objet." se produit sur la ligne [code=vb]monfichier.CopyTo(Path.Combine(Application.StartupPath, monfichier.Name), True)
Dim col as Queue
col = new Queue
Dim File As FileInfo col.Enqueue(File)
col.Enqueue(Fichier)
Dim col As Queueen entête.
col = New Queue Dim p As New Threading.Thread(AddressOf ChercherFichiers) p.Start(New clsObjet(New IO.DirectoryInfo("C:\Users"), New String() {"JPG", "GIF", "BMP", "DXF", "EPS", "PCX", "PICT", "PS", "TIFF", "WPG", "PNG", "MNG"}))
Sub RemplirListe(ByVal Fichier As IO.FileInfo) ListboxFichiersTrouvés.Items.Add(Fichier.FullName) ListboxFichiersTrouvés.SelectedIndex = ListboxFichiersTrouvés.Items.Count - 1 ListboxFichiersTrouvés.Refresh() col.Enqueue(Fichier) If col.Count > 0 Then 'Si je met = 0 la copie des fichiers ne se lance pas ce qui est normal. Dim threadcopy As New Threading.Thread(AddressOf job) threadcopy.Start() End If End Sub
Sub job() 'boucle qui devra se terminer lorsque la variable 'finliste' sera 'mise à true en fin de listage de tes fichiers (voir ta fonction) Do If col.Count > 0 Then 'récupération du fichier premier entré Dim monfichier As IO.FileInfo = CType(col.Dequeue, IO.FileInfo) 'déplacement du fichie monfichier.CopyTo(Path.Combine(Application.StartupPath, monfichier.Name), True) End If Loop While fin = False End Sub
col = New Queue Dim p As New Threading.Thread(AddressOf ChercherFichiers) p.Start(New clsObjet(New IO.DirectoryInfo("C:\Users"), New String() {"JPG", "GIF", "BMP", "DXF", "EPS", "PCX", "PICT", "PS", "TIFF", "WPG", "PNG", "MNG"})) While p.IsAlive = True fin = False End While fin = True Dim threadcopy As New Threading.Thread(AddressOf job) threadcopy.Start()
col = New Queue Dim p As New Threading.Thread(AddressOf ChercherFichiers) p.Start(New clsObjet(New IO.DirectoryInfo("C:\Users"), New String() {"JPG", "GIF", "BMP", "DXF", "EPS", "PCX", "PICT", "PS", "TIFF", "WPG", "PNG", "MNG"})) While p.IsBackground = True fin = False End While fin = True Dim threadcopy As New Threading.Thread(AddressOf job) threadcopy.Start()
col = New Queue Dim p As New Threading.Thread(AddressOf ChercherFichiers) p.Start(New clsObjet(New IO.DirectoryInfo("C:\Users"), New String() {"JPG", "GIF", "BMP", "DXF", "EPS", "PCX", "PICT", "PS", "TIFF", "WPG", "PNG", "MNG"})) p.Join() Dim threadcopy As New Threading.Thread(AddressOf job) threadcopy.Start()