Aide pour Listbox en VB ?? [Résolu]

Signaler
Messages postés
92
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
30 juin 2010
-
Messages postés
92
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
30 juin 2010
-
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 à 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

23 réponses

Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
27
Dim DestDir As String = "\\PC1\Dossier1" 
For Each Item As String In MaListBox.Items 
    Dim Filename As String = Item.Substring(Item.LastIndexOf(""), Item.Length - Item.LastIndexOf("")) 
    IO.File.Copy(Item, DestDir & Filename) 
    Application.DoEvents()'Evite le Freez de l'appli 
Next 


Oubli de coloration désolé, c'est plus joli comme ca !

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
27
Salut,

et dans ma fonction FileCopy , il faut donc que je fasse varier mon chemin source selon le fichier à envoyer


Ok, mais en fonction de quels critères ?

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
92
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
30 juin 2010

bha dans la listbox où les fichiers que choisit l'utilisateur , sa affiche le chemin complet , le nom et l'extension du fichier . donc dans ma boucle je voudrais qu'il recupere le chemin qui est inscrit dans la listbox
Messages postés
92
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
30 juin 2010

Voila pour l'instant mon code


'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))
MessageBox.Show("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
Messages postés
6823
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
1 juillet 2020
109
Bonjour,
J'ai vu que vous aviez fait plusieurs post sur le même sujet. Il suffit parfois de chercher sur le Forum pour avoir la réponse. Ce sujet a été traité sur ce Forum il n'y a pas très longtemps voir:
http://www.vbfrance.com/forum/sujet-VB-COMMENT-COPIER-PLUSIEURS-FICHIERS-DANS-DOSSIER_1447945.aspx

J'ai signalé qu'il fallait n'avoir que le nom des fichiers avec leur extension pour que la copie soit possible.
L'exemple que j'ai donné est avec une ChekedListBox, c'est la même chose avec une LisBox
@+
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
27
Et bah t'as trouvé ? Non ? Y'a quelque chose qui ne va pas avec ton code ?

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
92
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
30 juin 2010

bha nan j'ai pas trouver parce que la j'ai ecrit le chemin dans le code directement alors que je voudrais que mon prog le trouve automatiquement dans la listbox
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
27
Ah mais c'est juste ca !

Récupère le Filename de ta boite de dialogue lors du chargement du listbox, tout simplement.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
27
Enfin, je dis ça, mais en fait j'ai pas vraiement vu ton code donc je ne sais pas trop comment tu gère l'ajout de tes fichiers dans celui-ci.


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
27
Question :

Ton programme doit parcourir un dossier pou en lister les fichier *.txt et les copier vers un chemin UNC ou bien il doit permettre de sélectionner les fichier via une OpenFileDialog ?


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
92
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
30 juin 2010

bha j'ai un bouton parcourir qui m'ouvre une boite de dialogue openfiledialog
l'utilisateur choisit un fichier qui ensuite s'affiche dans une listbox où on voit le chemin complet , le nom et l'extension du fichier qui vient d'etre choisit
l'utilisateur doit pouvoir en choisir plusieurs donc dans ma listbox , il y aura plusieurs fichiers
et lorsque je clique sur envoyer , il faudrait qu'il les envoit tous donc il faudrait que mon programme recupere a chaque fois le chemin d'acces pour envoyer les fichiers
Messages postés
92
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
30 juin 2010

le pivert dans le code que tu as posté dans la discussion que tu m'a passer je ne vois pas à quoi correspond ton bouton cible ?
à quoi sert -il ?
Messages postés
6823
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
1 juillet 2020
109
C'est très simple c'est le chemin de destination.
Il faut le chemin du dossier source, ensuite les fichiers qui s'affichent dans la ListBox. Après il faut le chemin du dossier de destination (cible) pour lui envoyer les fichiers. Enfin c'est comme cela que je procède. Cela fonctionne très bien, il suffit de sélectionner plusieurs fichiers , ils sont automatiquement copiés dans le dossier de destination(cible)
@+ Le Pivert
Messages postés
92
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
30 juin 2010

mais moi les fichiers que l'utilisateur choisit , ne sont pas dans les mêmes dossier
sa marchera quand meme ?
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
27
Tu as dis avoir le chemin complet dans la listbox :

Dim DestDir As String = "\\PC1\Dossier1"
For Each Item As String In MaListBox.Items
Dim Filename As String = Item.Substring(Item.LastIndexOf(""), Item.Length - Item.LastIndexOf(""))
IO.File.Copy(Item, DestDir & Filename)
Application.DoEvents()'Evite le Freez de l'appli
Next

Donc voila... rien de plus simple

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
6823
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
1 juillet 2020
109
Si je comprends bien c'est juste le chemin d'accès que tu copies. Mais alors ce chemin d'accès tu le mets où?
Dans un fichier texte?
Dans ces conditions le fichier par lui-même n'est pas copié. Comme je l'est expliqué précèdemment pour copier un fichier il faut une dossier source et un dossier destination.
Messages postés
92
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
30 juin 2010

bha nan c'est le fichier que je copie , dans mon code je met juste le chemin du dossier où se situe mon fichier
Messages postés
92
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
30 juin 2010

je vais texpliquer en detail mon projet

j'ai une listebox qui me sert à afficher les fichiers que l'on veut copier
donc un bouton parcourir qui m'ouvre un openfiledialog pour que l'utilisateur choisisse les fichiers qu'il souhaite copier

ensuite j'ai 2 checkbox un "secteur E" et un "secteur F"
quand je coche l'un des 2 , j'ai une liste de pc (relié en local) qui s'affiche dans une autre listbox

donc mon projet c'est d'envoyer les fichiers presents dans la 1e listbox vers tout les pc qui sont dans ma 2e listbox
Messages postés
92
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
30 juin 2010

oh mayzz thanks youuu sa marche =) =)

juste une autre question stp :)
mon chemin de destination change aussi enfonction de l'ordinateur qu'a choisi l'utilisateur
en gros il faudrait que je fasse aussi une boucle (du meme style que mes fichiers) pour mon chemin de destination
saurez tu le faire ?? =)
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
27
C'est pas une boucle, c'est simplement changer la valeur de la variable "DestDir" avant le début dela boucle...

Pour ca à toi de voir, ca dépend ce que tu utilises comme contrôle pour le choix de l'ordinateur cible, si c'est un FolderBrowserDialog alors fais simplement :

Dim DestDir As String = FolderBrowserDialog1.SelectedPath



Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.