【转】如何复制一个正在使用的文件??VB6.0

2012-02-16 21:02

【转】如何复制一个正在使用的文件?(VB6.0)

刚刚在群里与别人聊到,使用VB的FileCopy函数无法复制正在使用中的文件.

他是想将数据库备份.

网上有不少的办法,有使用API的,有使用FSO的等.

我想,无法复制使用中的文件,可能是使用了读写模式打开源文件的原因吧.

于是就试着写了以下函数:

Public Function FileCopyEx(ByVal SouFileName As String, ByVal DestFileName As String)

'复制文件,可以复制正在使用的文件.

'SouFileName - 源文件

'DestFileName - 目标文件

'By 马大哈

'2007-05-05

Dim tmpArr() As Byte

Open SouFileName For Binary Access Read As #1

ReDim tmpArr(LOF(1))

Get 1, , tmpArr

Close #1

Open DestFileName For Binary As #2

Put 2, , tmpArr

Close #2

ReDim tmpArr(0) '释放内存

End Function

FileCopyEx与FileCopy是一样的用法,不过它可以复制正在使用中的文件.

代码非常简单,就不说明了.

但这种原理的代码是有问题的,就是在复制很大的文件时,程序会挂起.(文件小感觉不到)

最理想的是这样:

一,分段读入/写入,并返回进度;

二,放在一个线程里.

但是,VB6里多线程真的不好搞(至少我的本事还达不到让它稳定的程度.....)