U can use the Animated Copy Functions in Windows.

Sample from the MSDN

MSDN
VB Code:
  1. Option Explicit
  2.  
  3. Private Const FO_COPY = &H2&   'Copies the files specified
  4.                                'in the pFrom member to the
  5.                                'location specified in the
  6.                                'pTo member.
  7.  
  8. Private Const FO_DELETE = &H3& 'Deletes the files specified
  9.                                'in pFrom (pTo is ignored.)
  10.  
  11. Private Const FO_MOVE = &H1&   'Moves the files specified
  12.                                'in pFrom to the location
  13.                                'specified in pTo.
  14.  
  15. Private Const FO_RENAME = &H4& 'Renames the files
  16.                                'specified in pFrom.
  17.  
  18. Private Const FOF_ALLOWUNDO = &H40&   'Preserve Undo information.
  19.  
  20. Private Const FOF_CONFIRMMOUSE = &H2& 'Not currently implemented.
  21.  
  22. Private Const FOF_CREATEPROGRESSDLG = &H0& 'handle to the parent
  23.                                            'window for the
  24.                                            'progress dialog box.
  25.  
  26. Private Const FOF_FILESONLY = &H80&        'Perform the operation
  27.                                            'on files only if a
  28.                                            'wildcard file name
  29.                                            '(*.*) is specified.
  30.  
  31. Private Const FOF_MULTIDESTFILES = &H1&    'The pTo member
  32.                                            'specifies multiple
  33.                                            'destination files (one
  34.                                            'for each source file)
  35.                                            'rather than one
  36.                                            'directory where all
  37.                                            'source files are
  38.                                            'to be deposited.
  39.  
  40. Private Const FOF_NOCONFIRMATION = &H10&   'Respond with Yes to
  41.                                            'All for any dialog box
  42.                                            'that is displayed.
  43.  
  44. Private Const FOF_NOCONFIRMMKDIR = &H200&  'Does not confirm the
  45.                                            'creation of a new
  46.                                            'directory if the
  47.                                            'operation requires one
  48.                                            'to be created.
  49.  
  50. Private Const FOF_RENAMEONCOLLISION = &H8& 'Give the file being
  51.                                            'operated on a new name
  52.                                            'in a move, copy, or
  53.                                            'rename operation if a
  54.                                            'file with the target
  55.                                            'name already exists.
  56.  
  57. Private Const FOF_SILENT = &H4&            'Does not display a
  58.                                            'progress dialog box.
  59.  
  60. Private Const FOF_SIMPLEPROGRESS = &H100&  'Displays a progress
  61.                                            'dialog box but does
  62.                                            'not show the
  63.                                            'file names.
  64.  
  65. Private Const FOF_WANTMAPPINGHANDLE = &H20&
  66.                           'If FOF_RENAMEONCOLLISION is specified,
  67.                           'the hNameMappings member will be filled
  68.                           'in if any files were renamed.
  69.  
  70. ' The SHFILOPSTRUCT is not double-word aligned. If no steps are
  71. ' taken, the last 3 variables will not be passed correctly. This
  72. ' has no impact unless the progress title needs to be changed.
  73.  
  74. Private Type SHFILEOPSTRUCT
  75.    hwnd As Long
  76.    wFunc As Long
  77.    pFrom As String
  78.    pTo As String
  79.    fFlags As Integer
  80.    fAnyOperationsAborted As Long
  81.    hNameMappings As Long
  82.    lpszProgressTitle As String
  83. End Type
  84.  
  85. Private Declare Sub CopyMemory Lib "KERNEL32" _
  86.       Alias "RtlMoveMemory" _
  87.       (hpvDest As Any, _
  88.       hpvSource As Any, _
  89.       ByVal cbCopy As Long)
  90.  
  91. Private Declare Function SHFileOperation Lib "Shell32.dll" _
  92.       Alias "SHFileOperationA" _
  93.       (lpFileOp As Any) As Long
  94.  
  95. Private Sub Form_Load()
  96.    Check1.Caption = "Copy All Files in VB Directory"
  97.    Check2.Caption = "Display Custom Message"
  98.    Command1.Caption = "Copy Files"
  99. End Sub
  100.  
  101. Private Sub Command1_Click()
  102.    Dim result As Long
  103.    Dim lenFileop As Long
  104.    Dim foBuf() As Byte
  105.    Dim fileop As SHFILEOPSTRUCT
  106.  
  107.    lenFileop = LenB(fileop)    ' double word alignment increase
  108.    ReDim foBuf(1 To lenFileop) ' the size of the structure.
  109.  
  110.    With fileop
  111.       .hwnd = Me.hwnd
  112.  
  113.       .wFunc = FO_COPY
  114.          
  115.       ' The files to copy separated by Nulls and terminated by two
  116.       ' nulls
  117.       If Check1.Value = vbChecked Then
  118.             .pFrom = Environ("windir") & "\*.exe"
  119.          .fFlags = FOF_SIMPLEPROGRESS Or FOF_FILESONLY
  120.       Else
  121.          .pFrom = Environ("windir") & "\Explorer.exe" _
  122.                   & vbNullChar _
  123.                   & Environ("windir") & "\WinHelp.exe" _
  124.                   & vbNullChar _
  125.                   & vbNullChar
  126.       End If
  127.  
  128.       .pTo = "C:\testfolder\" & vbNullChar & vbNullChar
  129.  
  130.       If Check2.Value = vbChecked Then
  131.          .fFlags = FOF_SIMPLEPROGRESS Or FOF_NOCONFIRMATION Or _
  132.                    FOF_NOCONFIRMMKDIR
  133.          .lpszProgressTitle = "Your custom dialog string " & _
  134.                               "appears here." & vbNullChar _
  135.                                               & vbNullChar
  136.       End If
  137.    End With
  138.  
  139.    ' Now we need to copy the structure into a byte array
  140.    Call CopyMemory(foBuf(1), fileop, lenFileop)
  141.  
  142.    ' Next we move the last 12 bytes by 2 to byte align the data
  143.    Call CopyMemory(foBuf(19), foBuf(21), 12)
  144.    result = SHFileOperation(foBuf(1))
  145.  
  146.    If result <> 0 Then  ' Operation failed
  147.       MsgBox Err.LastDllError 'Show the error returned from
  148.                               'the API.
  149.       Else
  150.       If fileop.fAnyOperationsAborted <> 0 Then
  151.          MsgBox "Operation Failed"
  152.       End If
  153.    End If
  154. End Sub