Tengo que detectar si un archivo está en uso, y detallo...
El archivo es generado lentamente por otra aplicacion, este archivo puede llegar a pesar 10gb y tengo que detectar lo antes posible sin generar conflictos cuando terminó de generarse.
A lo bestia, se me ocurrió usar un timer y chequear el peso del archivo cada X segundos, si no cambia de tamaño en X tiempo entonces sigue con las tareas, pero esto no me resulta práctico, me consume muchos recursos y no me convence para nada la idea de usar un timer durante 10 o más minutos.
Googleando alguna alternativa, me encontré con un código en bigresource q postió un tal "plenderj".
Código:
Private Function isFileLocked(ByVal strFilePath As String) As Boolean
On Error GoTo errHandle
isFileLocked = False
Open strFilePath For Binary Access Read Write Lock Read Write As #1
Close #1
Exit Function
errHandle:
isFileLocked = True
msgbox "Está siendo usado por otra aplicación"
End Function
Le agrego un msgbox para ver q me devuelve, se lo agrego debajo de "isFileLocked = True" de manera que si el archivo está ocupado me lo diga, pero me dice que está ocupado incluso cuando no lo está :SOn Error GoTo errHandle
isFileLocked = False
Open strFilePath For Binary Access Read Write Lock Read Write As #1
Close #1
Exit Function
errHandle:
isFileLocked = True
msgbox "Está siendo usado por otra aplicación"
End Function
Sugerencias?










Autor


En línea












