Salsomaggiore Terme (Programmazione) - 17/10/2012 - - Written by
VB NET Controllare se il file usato da un altro processo
VB .NET Controllare se il file è usato da un altro processo

In alcuni casi è necessario dover controllare se un file è utilizzato da un altro processo prima di poterlo copiare oppure spostare.
Per poter effettuare questo controllo proviamo ad aprire il file e verifichiamo se si genera una eccezione, di seguito è possibile vedere un esempio di codice


Protected Function FileNotUsed(ByVal sPathFile As String) As Boolean
Dim bRet As Boolean = False
Try
Dim bNotUsed As Boolean = False
Dim dtStart As DateTime = DateTime.Now
Dim fsFile As IO.FileStream = Nothing

While Not bNotUsed
Try
fsFile = IO.File.Open(sPathFile, IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.None)
bNotUsed = True
Catch ex As Exception

Finally
If Not IsNothing(fsFile) Then fsFile.Close()
If Not IsNothing(fsFile) Then fsFile.Dispose()
fsFile = Nothing
End Try

Dim tsDiff As TimeSpan = dtStart - DateTime.Now
If tsDiff.TotalMinutes > 1 Then Throw New Exception("File utilizzato da un altro processo")
Threading.Thread.Sleep(200)
End While

bRet = True
Catch ex As Exception

End Try
Return bRet
End Function


All’interno di questo codice viene controllato anche per un certo periodo (1 minuto) se il file viene rilassciato dal processo.
Il controllo se il file viene utilizzato da un altro processo viene effettuato cercando di leggere lo stream del file , operazione che genera una eccezione nel caso questo sia utilizzato da un altro processo
Altri articoli che potrebbero interessarti
© MrPaloma 2021 - Viaggi - Foto -