Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/07/2009, 09:14
Judgement
 
Fecha de Ingreso: noviembre-2008
Mensajes: 136
Antigüedad: 15 años, 6 meses
Puntos: 2
Mensaje Respuesta: Saber cuando un fichero no esta siendo usado por otro programa

Saludos, mira debido a que en VB6 no funciona Try, nos vemos forzados a usar Goto, pero solamente para manejo de errores.

Aqui te muestro una función para saber si el archivo esta siendo usado o no:
Código vb:
Ver original
  1. Function IsFileOpen(strFileSpec As String) As Boolean
  2. ' Purpose   Test to see if the file has been locked by another process
  3.    Dim intFn As Integer, lngErrNum As Long, strErrDescr As String
  4.  
  5.     On Error Resume Next        ' No Error checking
  6.    intFn = FreeFile()          ' Get a free file number.
  7.    ' Attempt to open the file and lock it.
  8.    Open strFileSpec For Input Lock Read As intFn
  9.     Close intFn                 ' Close the file.
  10.    lngErrNum = Err.Number      ' Save the error number that occurred.
  11.    strErrDescr = Err.Description
  12.     On Error GoTo 0             ' Turn error checking back on.
  13.    ' Report the error
  14.    Select Case lngErrNum
  15.         Case 0
  16.             ' No error occurred - File is NOT already open by another user.
  17.             IsFileOpen = False
  18.         Case 70
  19.             ' Error number for "Permission Denied. - File is opened by
  20. another user.
  21.             IsFileOpen = True
  22.         Case Else
  23.             ' Yikes some other error occurred.
  24.            IsFileOpen = False
  25.             MsgBox "Error! " & vbCrLf & "Error Number " & lngErrNum & vbCrLf
  26. & "Error Descr " & strErrDescr, vbExclamation, "IsFileOpen()"
  27.     End Select
  28. End Function