This code allows you to copy any file, including your application to another destination at runtime.
Note: This code has only been tested on Windows 98 using Visual Basic 6.0
Original Author: Mike Owens
Inputs
Input file, output file
Assumptions
Note: This sub is only useful for copying inaccessable files. For regular files, the “FileCopy” sub should be called. An example of use would be to make your exe copy itself somewhere else while running.
Returns
Returns 1 on success, 0 on error.
Code
Public Function CopyFileAny(currentFilename As String, newFilename As String)
Dim a%, buffer%, temp$, fRead&, fSize&, b%
On Error GoTo ErrHan:
a = FreeFile
buffer = 4048
Open currentFilename For Binary Access Read As a
b = FreeFile
Open newFilename For Binary Access Write As b
fSize = FileLen(currentFilename)
While fRead < fSize
DoEvents
If buffer > (fSize - fRead) Then buffer = (fSize - fRead)
temp = Space(buffer)
Get a, , temp
Put b, , temp
fRead = fRead + buffer
Wend
Close b
Close a
CopyFileAny=1
Exit Function
ErrHan:
CopyFileAny=0
End Function