我没有做过,不过我在你的另一个帖子说了一个自己的思路,你试试。

解决方案 »

  1.   

    Q1、2、3 answer: 只能自己写一个 Copy 了 
    Objects: Form1、Command1、ProgressBar1
    Private Sub Command1_Click()
       MyFileCopy "d:\s0.exe", "d:\s1.exe", ProgressBar1
    End SubSub MyFileCopy(sFileName0 As String, sFilename As String, ProgressBarX As MSComctlLib.ProgressBar)
         '当 N=0时 ,即 为 Copy
         ProgressBarX.Value = ProgressBarX.Min
         Const KB = 1024
         Dim nKB As Long
         nKB = 64
         Dim FileBuffer() As Byte
         Dim FileNumberS As Long
         Dim FileNumberT As Long
         Dim lFileLen As Long
         lFileLen = FileLen(sFileName0)
         ProgressBarX.Max = lFileLen \ nKB * KB + IIf(lFileLen Mod nKB * KB > 0, 1, 0)
         FileNumberS = FreeFile
         Open sFileName0 For Binary Access Read As #FileNumberS
         FileNumberT = FreeFile
         Open sFilename For Binary Access Write As #FileNumberT
         ReDim FileBuffer(1 To (nKB * KB)) As Byte '设 置 缓 冲 区 大 小 为 64K
         '若 用 Do Until LOF(FileNumber)
         ' ...
         ' Loop 语 句 ,
         '不 方 便 ,复 杂 !
         Do While lFileLen >= (nKB * KB)
            Get #FileNumberS, , FileBuffer
            Put #FileNumberT, , FileBuffer
            lFileLen = lFileLen - (nKB * KB)
            ProgressBarX.Value = ProgressBarX.Value + 1
         Loop
         If lFileLen > 0 Then
         ReDim FileBuffer(1 To lFileLen) As Byte
         Get #FileNumberS, , FileBuffer
         Put #FileNumberT, , FileBuffer
         ProgressBarX.Value = ProgressBarX.Value + 1
         End If
         Close #FileNumberS
         Close #FileNumberT
         MsgBox "End!"
         End Sub
    Q4 answer: mkdir("..\..\")