Besoin AIDE pour listbox en VB ??
Hunzimmer
Messages postés
65
Statut
Membre
-
commentcamarcheeay Messages postés 735 Statut Membre -
commentcamarcheeay Messages postés 735 Statut Membre -
Bonjour,
donc voila sa fait 3 jours que je suis dessus , j'arrive pas a trouver
je suis sur visual basic 2008
Enfaite j'ai un bouton parcourir , et tout les fichiers que je parcours se mettent dans une listbox .
et ces fichiers je dois les envoyer sur d'autres pc en local
et dans ma fonction FileCopy , il faut donc que je fasse varier mon chemin source selon le fichier a envoyer
mon maitre de stage veut que tout les fichiers s'envoient en 1 fois donc il faut que je fasse une boucle qui me permet de mettre le chemin du 1e fichier de la liste en chemin source et l'envoyer , le 2e .. etc etc
mais je sais vraiment pas , je suis bloquer
Merci
donc voila sa fait 3 jours que je suis dessus , j'arrive pas a trouver
je suis sur visual basic 2008
Enfaite j'ai un bouton parcourir , et tout les fichiers que je parcours se mettent dans une listbox .
et ces fichiers je dois les envoyer sur d'autres pc en local
et dans ma fonction FileCopy , il faut donc que je fasse varier mon chemin source selon le fichier a envoyer
mon maitre de stage veut que tout les fichiers s'envoient en 1 fois donc il faut que je fasse une boucle qui me permet de mettre le chemin du 1e fichier de la liste en chemin source et l'envoyer , le 2e .. etc etc
mais je sais vraiment pas , je suis bloquer
Merci
6 réponses
-
Bonjour,
Il parait logique qu'il faut faire une boucle qui envoi les fichiers un par un jusqu'au dernier. La boucle doit se faire sur les éléments de la liste ( = 0 to ListBox1.Items.Count -1).
Si tu mets le code qui te permet de copier un seul fichier on pourra essayer ensemble de trouver une solution pour envoyer tous les fichiers au même temps.
Salutations!
-
Voila mon code qui me permet de copier
'chemin d'origine des fichiers
Dim sourceDir As String = "C:\Documents and Settings\Mes documents\test"
'chemin où sont copier les fichiers
Dim backupDir As String = "\\Poste1\ia"
Try
Dim txtList As String() = Directory.GetFiles(sourceDir, "*.txt")
For Each f As String In txtList
Dim fName As String = f.Substring(sourceDir.Length + 1)
Try
File.Copy(Path.Combine(sourceDir, fName), Path.Combine(backupDir, fName))
MsgBox("Votre fichier s'est correctement envoyé ! ")
Catch copyError As IOException
MessageBox.Show("Erreur pour la copie des fichiers ! " & copyError.Message)
End Try
Next
Catch dirNotFound As DirectoryNotFoundException
MessageBox.Show(" Erreur de copie ! " & dirNotFound.Message)
End Try -
Bonjour,
Dans le code que tu utilises, on ne dispose que d'une seule information sur le dossier source. Or, les fichiers peuvent parvenir de plusieurs dossiers. Il est indispensable d'avoir une liste comportant tous les chemins des répertoires concernés.
Il est possible dans ce cas d'utiliser une liste
Dim sourceDirs as String() ' = Liste des chemins concernés For Each sourceDir as String In sourceDirs .... ' Le code que tu met pour un seul chemin (que tu as présenté ci-haut ) Next
Avec sourceDirs une liste que tu dois avoir informé au préalable. -
On peut écrire le code de cette manière :
'chemin d'origine des fichiers Dim sourceDirS As String( [Nombre de chemins concernés] ) 'chemin où sont copier les fichiers Dim backupDir As String = "\\Poste1\ia" 'information des chemins concernés sourceDirS(0) = "chemin1" sourceDirS(1) = "chemin2" ... sourceDirS( [Nombre de chemins concernés] -1) = "chemin [Nombre de chemins concernés]" Try For Each sourceDir As String In sourceDirs Try Dim txtList As String() = Directory.GetFiles(sourceDir, "*.txt") For Each f As String In txtList Dim fName As String = f.Substring(sourceDir.Length + 1) Try File.Copy(Path.Combine(sourceDir, fName), Path.Combine(backupDir, fName)) MsgBox("Votre fichier s'est correctement envoyé ! ") Catch copyError As IOException MessageBox.Show("Erreur pour la copie des fichiers ! " & copyError.Message) End Try Next Catch dirNotFound As DirectoryNotFoundException MessageBox.Show(" Erreur de copie ! " & dirNotFound.Message) End Try End Try
-
-
-
Si on a envie de sélectionner un nombre restreint de fichier, il faut le préciser dans les conditions.
Ce qui est possible de faire si on ne veut pas copier tous les fichiers, c'est de créer deux liste parallèles, une qui contient le nom du fichier, et l'autre le chemin où il se trouve.
Tout dépend de la manière avec laquelle les fichiers sont 'parcourus'. -
-
Pour qu'on encadre mieux la problématique, peux tu décrire clairement ce que tu veux que l'algorithme fasse. Répondre surtout aux questions suivantes :
- Sur quel critère les fichiers sont-ils sélectionnés.
- Comment ces fichiers sont-ils sélectionnés (pour savoir comment la liste des fichiers est remplie)
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Suite à ta dernière réplique, je peux te proposer de travailler directement avec la liste que l'utilisateur remplit au fur et à mesure.
Supposons que cette liste soit nommée ListBox1 :
'chemin d'origine des fichiers Dim sourceList As String(ListBox1.ListCount) 'En sachant que la ListBox1 contient tous les fichiers avec leur chemins complets 'chemin où sont copier les fichiers Dim backupDir As String = "\\Poste1\ia" Try ' On copie le contenu de la ListBox dans un tableau ' On aurait pu travailler directement avec la ListBox, mais celà fait plus propre dim i as integer For i = 0 to ListBox1.ListCount - 1 sourceList(LBound(sourceList) + i) = ListBox1(i) Next i End Try Try For Each f As String In sourceDirs 'Dim fName As String = f.Substring(sourceDir.Length + 1) Try File.Copy(f, Path.Combine(backupDir, Path.GetFileName(f))) MsgBox("Votre fichier s'est correctement envoyé ! ") Catch copyError As IOException MessageBox.Show("Erreur pour la copie des fichiers ! " & copyError.Message) End Try Next f Catch dirNotFound As DirectoryNotFoundException MessageBox.Show(" Erreur de copie ! " & dirNotFound.Message) End Try End Try
J'espère que j'ai bien compris ce qui est demandé!
-
Voici une application écrite en VB qui répond à la problématique contenant :
- Les fichiers du code
- Un exécutable
Pour télécharger
-
-
-
J'ai trouvé une conversation concernant la transformation du code vb en vb.net
-
-
-