cs_frk206
Messages postés17Date d'inscriptionjeudi 22 janvier 2009StatutMembreDernière intervention12 mars 2013
-
11 mars 2013 à 14:41
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024
-
12 mars 2013 à 14:26
Salut à tous,
je suis un peu débutant vb net , mais je souhate faire un truc.
Sur mon formulaire il y a deux txtbox. L'un s'appelle "source" et l'autre "destination un progressbar, et en fin un bouton "Copier'
Je souhaite quad je clique sur le bouton copier, mon programme copie le fichier dans le textbox source ver le textbox destination et AFFICHE L ETAT DE LAVANCEMENT DE LA COPIE AVEC MON PROGRESSBAR.
La copie marche bien, mais mon souci c'est le progressebar, j'ai essayé vaec un timer mais c'est A LA FIN DE LA COPIE QUE LE TIMER MARCHE
merci de m'aider
extrait de mon code:
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
If Me.TextBox1.Text <> "" And Me.TextBox2.Text <> "" Then
'copie
Dim total_fichier As Integer = 0
For Each fichier As String In Me.OpenFileDialog1.FileNames
total_fichier = total_fichier + My.Computer.FileSystem.GetFileInfo(fichier).Length
Next
Me.ProgressBar1.Minimum = 0
Me.ProgressBar1.Maximum = total_fichier
Me.Timer1.Start()
'MsgBox(Me.ProgressBar1.Minimum)
'MsgBox(Me.ProgressBar1.Maximum)
For Each f As String In Me.OpenFileDialog1.FileNames
Me.ProgressBar1.Value = Me.ProgressBar1.Value + My.Computer.FileSystem.GetFileInfo(f).Length
Me.Refresh()
My.Computer.FileSystem.CopyFile(f, Me.TextBox2.Text & "" & System.IO.Path.GetFileName(Me.TextBox1.Text))
Me.Refresh()
Next
Me.Timer1.Stop()
MsgBox("Copie terminée !")
Else
MsgBox("Veuillez remplir tous les champs")
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 11 mars 2013 à 19:01
Bonjour,
La copie marche bien, mais mon souci c'est le progressebar, j'ai essayé vaec un timer mais c'est A LA FIN DE LA COPIE QUE LE TIMER MARCHE
je ne vois pas trop ce que viendrait faire un timer dans cette affaire de barre dont la progression doit constater chaque copie effectuée.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
cs_frk206
Messages postés17Date d'inscriptionjeudi 22 janvier 2009StatutMembreDernière intervention12 mars 2013 12 mars 2013 à 08:25
oui, je vous comprends, si je copie plus de DEUX fichier c bon!!!la valeur du progressbar est divvisé en deux cette fois. ou bien tu copie CINQ fichier la progressbar sera aussi mise ajour cinq fois
MAIS si tu copie UN seul fichier de 800MO par exemple, c là k'il n'y apas de progression
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024137 12 mars 2013 à 14:26
Bonjour,
Je t'ai fait cela tu l'adapteras à tes besoins:
Imports System.IO
Public Class Form1
Dim cheminsource As String
Dim chemincible As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If chemincible = "" Then Exit Sub
'boite dialogue de choix dossier source
Dim opendir As New FolderBrowserDialog
With opendir
.SelectedPath = cheminsource
.ShowNewFolderButton = False
If .ShowDialog = Windows.Forms.DialogResult.OK Then
cheminsource = "" & .SelectedPath & "" 'dernier dossier ouvert en mémoire
Dim di As New IO.DirectoryInfo(.SelectedPath)
Dim extFi As IO.FileInfo() = di.GetFiles("*.*") 'filtrer les fichiers
Dim fi As IO.FileInfo
' Minimum à 1
ProgressBar1.Minimum = 1
' Maximum= nombre total de fichier à copier.
ProgressBar1.Maximum = cheminsource.Length
' On initialise la ProgressBar.
ProgressBar1.Value = 1
' On indique le pas.
ProgressBar1.Step = 1
Dim x As Integer
For x = 1 To cheminsource.Length - 1
For Each fi In extFi
'ListBox1.Items.Add(fi.Name) 'affiche les noms avec extension
My.Computer.FileSystem.CopyFile(cheminsource & fi.Name, chemincible & "" & fi.Name, True)
Next
ProgressBar1.PerformStep()
Next x
MessageBox.Show("Copie réussie", "Copie fichier", MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
MessageBox.Show("Opération annulée par l'utilisateur!", "Ouverture dossier", MessageBoxButtons.OK, MessageBoxIcon.Information)
Exit Sub
End If
.Dispose()
End With
End Sub
'boite dialogue de choix dossier cible
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim Ofd As New System.Windows.Forms.FolderBrowserDialog
Ofd.ShowDialog()
chemincible = Ofd.SelectedPath
If chemincible = "" Then
MessageBox.Show("Opération annulée par l'utilisateur", "Dossier source", MessageBoxButtons.OK, MessageBoxIcon.Information)
Exit Sub
End If
End Sub
End Class