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 IntegerOn 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 SelectEnd 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!
Comments
Excelente aporte, muchas gracias!!!
Gracias a tí por comentar este artículo de vb6 🙂
Muchas gracias brother..un gran aporte.
Nada! agradecido por tu comentario 😉
¿No es mas fácil poner el código escrito que un video?
Es el código escrito sin vídeo… ¿No es más fácil comentar tras ver el contenido? 😀
Me ha resultado muy útil. Gracias
Me alegro! Un saludo!