Saber si un archivo está en uso o abierto vb6 (Visual basic 6)

Bienvenidos a VerTutoriales.com, en esta ocasión os traigo una función para saber si un archivo está en uso o abierto, aunque visual basic no trae una función específica, nosotros nos creamos un truco, veamos.

Public Function ArchivoEnUso(ByVal sFileName As String) As Boolean
Dim filenum As Integer, errnum As Integer

On Error Resume Next ‘ Turn error checking off.
filenum = FreeFile() ‘ Get a free file number.
‘ Attempt to open the file and lock it.
Open sFileName For Input Lock Read As #filenum
Close filenum ‘ Close the file.
errnum = Err ‘ Save the error number that occurred.
On Error GoTo 0 ‘ Turn error checking back on.

‘ Check to see which error occurred.
Select Case errnum

‘ No error occurred.
‘ File is NOT already open by another user.
Case 0
ArchivoEnUso = False

‘ Error number for «Permission Denied.»
‘ File is already opened by another user.
Case 70
ArchivoEnUso = True

‘ Another error occurred.
Case Else
Error errnum
End Select

End Function

La función ArchivoEnUso, recibe el parámetro sFileName, que trae la ruta completa junto con el nombre de fichero, por ejemplo «c:\facturas\archivo-en-uso.pdf» este fichero se intentará abrir, si da error al abrir, quiere decir que está siendo usado y por tanto devolverá true (está usandose) en cualquier otro caso, devolverá false (no está usándose el archivo)

La función no es más, simplemente llamarla de la siguiente manera: ArchivoEnUso(«c:\directorio\archivo.pdf») y nos devolverá true o false dependiendo de si está en uso o no.

Espero que os sirva!

Carlos Dk

Apasionado por la enseñanza y el SEO

8 comentarios en “Saber si un archivo está en uso o abierto vb6 (Visual basic 6)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.