Lock、Unlock 函数
更新:2007 年 11 月
控制其他进程对使用 Open 函数打开的文件的全部或一部分的访问。
在文件 I/O 操作中,My 功能具有比 Lock 和 Unlock 更高的效率和更好的性能。有关更多信息,请参见 My.Computer.FileSystem 对象。
Public Overloads Sub Lock(ByVal FileNumber As Integer)
' -or-
Public Overloads Sub Unlock(ByVal FileNumber As Integer)
' -or-
Public Overloads Sub Lock(_
ByVal FileNumber As Integer, _
ByVal Record As Long _
)
' -or-
Public Overloads Sub Unlock( _
ByVal FileNumber As Integer, _
ByVal Record As Long _
)
' -or-
Public Overloads Sub Lock( _
ByVal FileNumber As Integer, _
ByVal FromRecord As Long, _
ByVal ToRecord As Long _
)
' -or-
Public Overloads Sub Unlock( _
ByVal FileNumber As Integer, _
ByVal FromRecord As Long, _
ByVal ToRecord As Long _
)
参数
FileNumber
必需。任何有效文件号。Record
可选。唯一要锁定或取消锁定的记录号或字节数。FromRecord
可选。第一个要锁定或取消锁定的记录号或字节数。ToRecord
可选。最后一个要锁定或取消锁定的记录号或字节数。
异常
异常类型 |
错误号 |
条件 |
---|---|---|
FileNumber 不存在。 |
||
文件模式无效。 |
如果正在升级使用非结构化错误处理方式的 Visual Basic 6.0 应用程序,请参见“错误号”一列。(您可以根据 Number 属性(Err 对象) 比较错误号。) 然而,如果可能,应当考虑用 Visual Basic 的结构化异常处理概述 替换这种错误控制。
备注
Lock 和 Unlock 函数用在多个进程可能需要访问同一个文件的环境中。
Lock 和 Unlock 函数总是成对出现。Lock 和 Unlock 的参数必须完全一致。
如果未提供 Record 或 FromRecord 和 ToRecord,则将锁定整个文件。如果只指定 Record,则将锁定/取消锁定单个记录。
如果已经以顺序输入或输出模式打开文件,则无论 FromRecord 和ToRecord 指定的范围如何,Lock 和 Unlock 都会影响整个文件。
示例
本示例阐释 Lock 和 Unlock 函数的使用。本示例假定 People.txt 是包含 Person 结构记录的文件。
Structure Person
Dim Name As String
Dim ID As Integer
End Structure
Sub PutInLockedFile(ByVal index As Integer, ByVal onePerson As Person)
Try
FileOpen(1, "c:\people.txt", OpenMode.Binary)
Lock(1)
FilePut(index, onePerson)
Unlock(1)
FileClose(1)
Catch
' Error recovery code here.
End Try
End Sub
智能设备开发人员说明
不支持此函数。
要求
**模块:**FileSystem
**程序集:**Visual Basic 运行库(在 Microsoft.VisualBasic.dll 中)