A voir également:
- Besoin AIDE pour listbox en VB ??
- Vb - Télécharger - Langages
- Vb cable - Télécharger - Audio & Musique
- Vb editor - Télécharger - Langages
- Vb runtime - Télécharger - Divers Utilitaires
- Vb express - Télécharger - Langages
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!
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
'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
Avec sourceDirs une liste que tu dois avoir informé au préalable.
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'.
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)
- 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 :
J'espère que j'ai bien compris ce qui est demandé!
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
- Les fichiers du code
- Un exécutable
Pour télécharger