I have a legacy VB6 application that uploads file attachments to a database BLOB field. It works fine unless a user has the file open.
I tried creating a copy of th
If you would like to do the same without using the api:
Function SharedFilecopy(ByVal SourcePath As String, ByVal DestinationPath As String)
Dim FF1 As Long, FF2 As Long
Dim Index As Long
Dim FileLength As Long
Dim LeftOver As Long
Dim NumBlocks As Long
Dim filedata As String
Dim ErrCount As Long
On Error GoTo ErrorCopy
'-------------
'Copy the file
'-------------
Const BlockSize = 32767
FF1 = FreeFile
Open SourcePath$ For Binary Access Read As #FF1
FF2 = FreeFile
Open DestinationPath For Output As #FF2
Close #FF2
Open DestinationPath For Binary As #FF2
Lock #FF1: Lock #FF2
FileLength = LOF(FF1)
NumBlocks = FileLength \ BlockSize
LeftOver = FileLength Mod BlockSize
filedata = String$(LeftOver, 32)
Get #FF1, , filedata
Put #FF2, , filedata
filedata = ""
filedata = String$(BlockSize, 32)
For Index = 1 To NumBlocks
Get #FF1, , filedata
Put #FF2, , filedata
Next Index
Unlock #FF1: Unlock #FF2
SharedFilecopy = True
exitcopy:
Close #FF1, #FF2
Exit Function
ErrorCopy: ErrCount = ErrCount + 1
If ErrCount > 2000 Then
SharedFilecopy = False
Resume exitcopy
Else
Resume
End If
End Function