我有一个系统可以将数据备份到具有某些参数的网络,例如:
'如果x进程正在运行,请不要运行备份'
因为它连接到网络,所以用户将不断加入。我遇到的问题是,如果数据正在使用中,我不希望数据被移动到网络上,此外,如果有人在程序所在的同一台计算机上使用文件浏览器,则数据无法移动。< / p>
我会使用'如果资源管理器正在运行,请不要运行备份',但资源管理器已链接到Windows并且始终在运行
If program.Count > 0 Or program2.Count > 0 Then
Try
Msgbox("Process Running")
Catch ex As Exception
End Try
Else
'backup data
End If
有没有办法尝试让程序传输文件,但如果由于文件目录已经打开而失败,那么执行x?
答案 0 :(得分:-1)
试试这个。如果您无法锁定文件,它应该会生成错误。
Public Function IsFileLocked(file As FileInfo) As Boolean
Dim stream = DirectCast(Nothing, FileStream)
Try
stream = file.Open(FileMode.Open, FileAccess.ReadWrite, FileShare.None)
Catch generatedExceptionName As IOException
'handle the exception your way
Return True
Finally
If stream IsNot Nothing Then
stream.Close()
End If
End Try
Return False
End Function