Lock 関数、Unlock 関数

更新 : 2007 年 11 月

Open 関数で開いたファイルの一部または全体に対する他のプロセスからのアクセスを制御します。

My 機能を使用すると、Lock および Unlock を使用するよりもファイル I/O 処理の生産性とパフォーマンスが格段に向上します。詳細については、「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 関数は、必ず 2 つ 1 組で使用します。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 におけるファイル アクセス