I'm getting uber frustrated so he's the full code. It's still very sloppy, have not had time to go back and clean it up. Suggestions are very welcome!

vb.net Code:
  1. Imports System
  2. Imports System.IO
  3. Public Class Form1
  4.     Dim SourceFolder As String = "C:\testfrom\"
  5.     Dim SourceFolderFileCount
  6.     Dim TargetFolder As String = "z:\"
  7.     Dim ioFile As New StreamWriter("c:\TestLogFile.txt")
  8.  
  9.     Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  10.         ioFile.WriteLine("BackUp Started: " & System.DateTime.Now)
  11.         SourceFolderFileCount = 0
  12.         Dim nameOfDirectory As String = SourceFolder
  13.         Dim myDirectory As DirectoryInfo
  14.         myDirectory = New DirectoryInfo(nameOfDirectory)
  15.         WorkWithDirectory(myDirectory)
  16.         ioFile.WriteLine("BackUp Ended: " & System.DateTime.Now)
  17.         MsgBox("Done!")
  18.         ioFile.Close()
  19.         IO.File.Copy("C:\TestLogFile.txt", TargetFolder & "BackUpLog.txt", True)
  20.         IO.File.Delete("C:\TestLogFile.txt")
  21.  
  22.     End Sub
  23.  
  24.     Public Sub WorkWithDirectory(ByVal aDir As DirectoryInfo)
  25.         Dim nextDir As DirectoryInfo
  26.         WorkWithFilesInDir(aDir)
  27.         For Each nextDir In aDir.GetDirectories
  28.             WorkWithDirectory(nextDir)
  29.         Next
  30.     End Sub
  31.  
  32.     Public Sub WorkWithFilesInDir(ByVal aDir As DirectoryInfo)
  33.         Dim aFile As FileInfo
  34.         For Each aFile In aDir.GetFiles()
  35.             Application.DoEvents()
  36.             Checkfile(aFile)
  37.         Next
  38.     End Sub
  39.  
  40.     Sub Checkfile(ByVal FileToCheck As FileInfo)
  41.         SourceFolderFileCount = SourceFolderFileCount + 1
  42.         Label1.Text = SourceFolderFileCount
  43.         Dim SourceFile As String = SourceFolder & Microsoft.VisualBasic.Right(FileToCheck.FullName, Len(FileToCheck.FullName) - (Len(SourceFolder)))
  44.         Dim SourceFileInfo As FileInfo
  45.         SourceFileInfo = New FileInfo(SourceFile)
  46.  
  47.         Dim TargetFile As String = TargetFolder & Microsoft.VisualBasic.Right(FileToCheck.FullName, Len(FileToCheck.FullName) - (Len(SourceFolder)))
  48.         Dim TargetFileInfo As FileInfo
  49.         TargetFileInfo = New FileInfo(TargetFile)
  50.  
  51.  
  52.  
  53.         If IO.File.Exists(TargetFile) Then
  54.             MsgBox(TargetFile & " " & SourceFile)
  55.             MsgBox(TargetFileInfo.LastWriteTime & " , " & SourceFileInfo.LastWriteTime)
  56.             If TargetFileInfo.LastWriteTimeUtc < SourceFileInfo.LastWriteTimeUtc Then
  57.                 SaveFile(SourceFile, TargetFile, "Over Written File:", True)
  58.                 MsgBox("not good")
  59.             Else
  60.                 SaveFile(SourceFile, TargetFile, "Exsisting File:", False)
  61.             End If
  62.         Else
  63.             If TargetFileInfo.Directory.Exists = False Then IO.Directory.CreateDirectory(TargetFileInfo.Directory.ToString)
  64.             SaveFile(SourceFile, TargetFile, "New File:", True)
  65.         End If
  66.     End Sub
  67.  
  68.     Sub SaveFile(ByVal SourceFile As String, ByVal TargetFile As String, ByVal Status As String, ByVal DoICopy As Boolean)
  69.         If DoICopy = True Then
  70.             IO.File.Copy(SourceFile, TargetFile, True)
  71.         End If
  72.         ListBox1.Items.Add(Status)
  73.         ListBox1.Items.Add(SourceFile)
  74.         ListBox1.Items.Add(" -->" & TargetFile)
  75.         ListBox1.SelectedIndex = ListBox1.Items.Count - 1
  76.  
  77.         ioFile.WriteLine(Status & System.DateTime.Now)
  78.         ioFile.WriteLine(" Source File:" & SourceFile)
  79.         ioFile.WriteLine(" Target File:" & TargetFile)
  80.         ioFile.WriteLine("")
  81.  
  82.     End Sub
  83.  
  84. End Class