Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Saber cuando un fichero no esta siendo usado por otro programa

Estas en el tema de Saber cuando un fichero no esta siendo usado por otro programa en el foro de Visual Basic clásico en Foros del Web. Hola, necesito hacer un programa que me diga cuando un fichero no esta siendo usado por otro programa para poder leerlo y trabajar con el, ...
  #1 (permalink)  
Antiguo 19/07/2009, 15:49
 
Fecha de Ingreso: febrero-2007
Mensajes: 23
Antigüedad: 17 años, 2 meses
Puntos: 2
Saber cuando un fichero no esta siendo usado por otro programa

Hola, necesito hacer un programa que me diga cuando un fichero no esta siendo usado por otro programa para poder leerlo y trabajar con el, hasta ahora he usado un sistema con "On error goto.." pero me gustaría mejorarlo y no usar gotos ni nada parecido.

Saludos y gracias.
  #2 (permalink)  
Antiguo 21/07/2009, 09:14
 
Fecha de Ingreso: noviembre-2008
Mensajes: 136
Antigüedad: 15 años, 5 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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:40.