请教各位高手:如何在VB程序中实现同时拷贝多个文件的目地呢?我的意思是说:在一个文件刚开始拷贝的时候,又开始另一个文件的拷贝.多个文件同时进行拷贝,相互不影响的进行.
在VB程序中有个filecopy函数,但它好像只能进行一个文件的拷贝,不能进行多文件的同时拷贝,我听说使用shell函数可以实现,但只能进行如.exe,.com等几个规定格式的文件操作.也不能实现拷贝功能.
请教高手:如何在VB中实现多文件的同时拷贝呢?相互不影响的.请高手指点迷津.并给个例子代码.多谢!
在VB程序中有个filecopy函数,但它好像只能进行一个文件的拷贝,不能进行多文件的同时拷贝,我听说使用shell函数可以实现,但只能进行如.exe,.com等几个规定格式的文件操作.也不能实现拷贝功能.
请教高手:如何在VB中实现多文件的同时拷贝呢?相互不影响的.请高手指点迷津.并给个例子代码.多谢!
Call Shell("xcopy c:\test\*.*/s/e c:\test2\", vbHide)
End Sub
Dim lRetVal&, sShortPathName$, iLen%
Private Sub Command1_Click()
Call Shell("xcopy c:\test\*.*/s/e " & GetShortName(Environ("programfiles")) & "\test\", vbHide)
End SubPublic Function GetShortName(ByVal sLongFileName As String) As String
sShortPathName = Space(255)
iLen = Len(sShortPathName)
lRetVal = GetShortPathName(sLongFileName, sShortPathName, iLen)
GetShortName = Left(sShortPathName, lRetVal)
End Function
个人觉得,有可能这样的话会让速度更慢.磁头同一时间只能在一个位置读写,如果你同时并发多个文件复制,可能还让磁头更低效率了.除非你在复制时,针对文件存储的物理位置进行优化,让磁头走最短的路,来完成文件复制,就是类似NCQ功能.
Dim lRetVal&, sShortPathName$, iLen%
Private Sub Command1_Click()
Call Shell("xcopy c:\test\*.*/s/e " & GetShortName(Environ("programfiles")) & "\test\", vbHide)
'下面这行是如果两个路径都是长路径时的用法
'Call Shell("xcopy " & GetShortName(Environ("programfiles")) & "\test\*.*/s/e " & GetShortName(Environ("programfiles")) & "\test2\", vbHide)
End SubPublic Function GetShortName(ByVal sLongFileName As String) As String
sShortPathName = Space(255)
iLen = Len(sShortPathName)
Call GetShortPathName(sLongFileName, sShortPathName, iLen)
If InStr(sShortPathName, Chr(0)) > 0 Then
GetShortName = Mid(sShortPathName, 1, InStr(sShortPathName, Chr(0)) - 1)
Else
GetShortName = Trim(sLongFileName)
End If
End Function