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
    可选。最后一个要锁定或取消锁定的记录号或字节数。

异常

异常类型

错误号

条件

IOException

52

FileNumber 不存在。

IOException

54

文件模式无效。

如果正在升级使用非结构化错误处理方式的 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

智能设备开发人员说明

不支持此函数。

要求

命名空间:Microsoft.VisualBasic

**模块:**FileSystem

**程序集:**Visual Basic 运行库(在 Microsoft.VisualBasic.dll 中)

请参见

参考

FileOpen 函数

IOException

其他资源

使用 Visual Basic 访问文件