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("..\..\")
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("..\..\")