VB copy files from one folder to other

K

K

Hi all, I am using Visual Basic 2008. I am working on code with which
I can copy specified extention files from one folder to other. I need
two codes, one which can copy files of specified extention only from
top main folder and two which can copy files of specified extention
from top main folder as well as from all the subfolder which exist in
that top main folder. In these both codes I also need to have
progress bar code to show user the progress. I am struggling on this
and so far i came up with code (see below) which only copies files
from top main folder and i am getting error on line
"ProgressBar1.Value = (n / Fldrfl.Count) * 100". I'll be very
greatful if any friend can help me on this.

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
Dim FldrNm As String
Dim Fso As Object
Dim Fldr As Object
Dim Fldrfl As Object
Dim n As Long

FldrNm = TextBox1.Text
Fso = CreateObject("Scripting.FileSystemObject")
Fldr = Fso.GetFolder(FldrNm)
For Each Fldrfl In Fldr.Files
If Microsoft.VisualBasic.Right(Fldrfl.Name,
Microsoft.VisualBasic.Len(Fldrfl.Name) -
Microsoft.VisualBasic.InStrRev(Fldrfl.Name, ".")) = TextBox2.Text Then
Fldrfl.Copy(TextBox3.Text & "\" & Fldrfl.Name)
n = n + 1
ProgressBar1.Value = (n / Fldrfl.Count) * 100
Application.DoEvents()
End If
Next

Fldrfl = Nothing
Fldr = Nothing
Fso = Nothing

MsgBox("Files have been copied successful!", MsgBoxStyle.Information,
"Done!")
End If
End Sub
 
P

Peter Beach

Hi K,

At a guess I'd suggest that you need:

ProgressBar1.Value = ( n / Fldr.Files.Count ) * 100 ' Untested

I doubt the Fldrfl supports the .Count property - by definition there can be
only 1.

Is there any reason you are declaring your variables as Object rather than
as specified types? If you did this intellisense would probably help you
out.

Regards,

Peter Beach
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top