Copying files in VB.NET 2005

  • Thread starter Edhy Rijo [Progytech]
  • Start date
E

Edhy Rijo [Progytech]

Hi All,

I am learning VB.NET and building small application that will do the following:
1.. Copy all files from a DVD to a specific folder in the hard drive and overwrite all files always.
The problem I am facing is that the copy statement I am using is that when overwriting the files it will prompt for each file, so I can not find an option to tell it to overwrite all.

If strCopyToFolder.EndsWith("\") = False Then
strCopyToFolder += "\"
End If
'Dim instance As New FileIO.UIOption
For Each strFoundFile As String In My.Computer.FileSystem.GetFiles(Me.cboCDDrives.Text, FileIO.SearchOption.SearchAllSubDirectories, "*.*")
My.Computer.FileSystem.CopyFile(strFoundFile, strCopyToFolder & strFoundFile.Substring(3), FileIO.UIOption.AllDialogs, _
FileIO.UICancelOption.DoNothing)
' My.Computer.FileSystem.CopyFile(strFoundFile, strCopyToFolder & strFoundFile.Substring(3), True, FileIO.UICancelOption.DoNothing)

Next

As you can see I have tried with two ways to copying the files and since these DVD may have up to 7GB of data, I want to show the user the progress of the copying and then inform the user when the copying operation is completed.

I would appreciate if anybody can point me to the right direction here, taking into consideration that I am really new to VB.NET (just 2 weeks of reading books). My developer experience is with Visual FoxPro and I could have done this little project in not time with VFP, but I do want to get used to VB.NET.
 
K

Ken Tucker [MVP]

Hi,

Try something like this

Dim strFiles As ReadOnlyCollection(Of String) =
My.Computer.FileSystem.GetFiles(My.Computer.FileSystem.CurrentDirectory,
FileIO.SearchOption.SearchAllSubDirectories, "*.*")
ProgressBar1.Maximum = strFiles.Count
For x As Integer = 0 To strFiles.Count - 1
Dim strFoundFile As String = strFiles(x)
ProgressBar1.Value = x
My.Computer.FileSystem.CopyFile(strFoundFile, strCopyToFolder &
strFoundFile.Substring(3), FileIO.UIOption.AllDialogs, _
FileIO.UICancelOption.DoNothing)
' My.Computer.FileSystem.CopyFile(strFoundFile, strCopyToFolder
& strFoundFile.Substring(3), True, FileIO.UICancelOption.DoNothing)

Next
ProgressBar1.Value = strFiles.Count

Ken
------------------
Hi All,

I am learning VB.NET and building small application that will do the
following:
Copy all files from a DVD to a specific folder in the hard drive and
overwrite all files always.
The problem I am facing is that the copy statement I am using is that when
overwriting the files it will prompt for each file, so I can not find an
option to tell it to overwrite all.

If strCopyToFolder.EndsWith("\") = False Then
strCopyToFolder += "\"
End If
'Dim instance As New FileIO.UIOption
For Each strFoundFile As String In
My.Computer.FileSystem.GetFiles(Me.cboCDDrives.Text,
FileIO.SearchOption.SearchAllSubDirectories, "*.*")
My.Computer.FileSystem.CopyFile(strFoundFile, strCopyToFolder &
strFoundFile.Substring(3), FileIO.UIOption.AllDialogs, _
FileIO.UICancelOption.DoNothing)
' My.Computer.FileSystem.CopyFile(strFoundFile, strCopyToFolder &
strFoundFile.Substring(3), True, FileIO.UICancelOption.DoNothing)
Next

As you can see I have tried with two ways to copying the files and since
these DVD may have up to 7GB of data, I want to show the user the progress
of the copying and then inform the user when the copying operation is
completed.

I would appreciate if anybody can point me to the right direction here,
taking into consideration that I am really new to VB.NET (just 2 weeks of
reading books). My developer experience is with Visual FoxPro and I could
have done this little project in not time with VFP, but I do want to get
used to VB.NET.
 
E

Edhy Rijo [Progytech]

Hi Ken,

Thanks a lot for this code you put me in the right path.

--
Edhy Rijo
www.progytech.com
Bronx New York
ProMatrix MVP Life


Hi,

Try something like this

Dim strFiles As ReadOnlyCollection(Of String) =
My.Computer.FileSystem.GetFiles(My.Computer.FileSystem.CurrentDirectory,
FileIO.SearchOption.SearchAllSubDirectories, "*.*")
ProgressBar1.Maximum = strFiles.Count
For x As Integer = 0 To strFiles.Count - 1
Dim strFoundFile As String = strFiles(x)
ProgressBar1.Value = x
My.Computer.FileSystem.CopyFile(strFoundFile, strCopyToFolder &
strFoundFile.Substring(3), FileIO.UIOption.AllDialogs, _
FileIO.UICancelOption.DoNothing)
' My.Computer.FileSystem.CopyFile(strFoundFile, strCopyToFolder
& strFoundFile.Substring(3), True, FileIO.UICancelOption.DoNothing)

Next
ProgressBar1.Value = strFiles.Count

Ken
------------------
Hi All,

I am learning VB.NET and building small application that will do the
following:
Copy all files from a DVD to a specific folder in the hard drive and
overwrite all files always.
The problem I am facing is that the copy statement I am using is that when
overwriting the files it will prompt for each file, so I can not find an
option to tell it to overwrite all.

If strCopyToFolder.EndsWith("\") = False Then
strCopyToFolder += "\"
End If
'Dim instance As New FileIO.UIOption
For Each strFoundFile As String In
My.Computer.FileSystem.GetFiles(Me.cboCDDrives.Text,
FileIO.SearchOption.SearchAllSubDirectories, "*.*")
My.Computer.FileSystem.CopyFile(strFoundFile, strCopyToFolder &
strFoundFile.Substring(3), FileIO.UIOption.AllDialogs, _
FileIO.UICancelOption.DoNothing)
' My.Computer.FileSystem.CopyFile(strFoundFile, strCopyToFolder &
strFoundFile.Substring(3), True, FileIO.UICancelOption.DoNothing)
Next

As you can see I have tried with two ways to copying the files and since
these DVD may have up to 7GB of data, I want to show the user the progress
of the copying and then inform the user when the copying operation is
completed.

I would appreciate if anybody can point me to the right direction here,
taking into consideration that I am really new to VB.NET (just 2 weeks of
reading books). My developer experience is with Visual FoxPro and I could
have done this little project in not time with VFP, but I do want to get
used to VB.NET.
 

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