Private Function RefundirArchivo(ByRef Rutas() As String) As String
Dim f1 As Integer, f2 As Integer
Dim b() As Byte, k As Long, n As Integer, t As Long
On Local Error GoTo sale ' típicamente un fallo con una ruta, un archivo no se pudo abrir, no existe,etc...
If (Not (Rutas)) <> -1 Then ' la matriz tiene elementos ?
f1 = FreeFile: f2 = FreeFile
Open Rutas(0) For Binary As #f1
t = 1
For n = 1 To UBound(Rutas)
Open Rutas(n) For Binary As #f2 ' abrimos archivo uno a uno
k = LOF(f2) ' nos informamos de su tamaño
ReDim b(0 To k - 1) ' reservamos memoria
Get #f2, , b ' leemos origen
Put #f1, t, b ' pegamos en destino
t = t + k ' actualizamos puntero de escritura
Close #f2 ' cerramos archivo actual
Next
Erase b ' liberamos memoria
RefundirArchivo = Rutas(0) ' si todo fue bien devolvemos la ruta del archivo resultante, si falló algo se devuelve una cadena vacía.
End If
sale:
Close #f1, f2
End Function