FileSystem.FileOpen メソッド

定義

入力または出力用のファイルを開きます。 My機能を使用すると、FileOpenよりもファイル I/O 操作の生産性とパフォーマンスが向上します。 詳細については、FileSystemを参照してください。

public static void FileOpen(int FileNumber, string FileName, Microsoft.VisualBasic.OpenMode Mode, Microsoft.VisualBasic.OpenAccess Access = Microsoft.VisualBasic.OpenAccess.Default, Microsoft.VisualBasic.OpenShare Share = Microsoft.VisualBasic.OpenShare.Default, int RecordLength = -1);
static member FileOpen : int * string * Microsoft.VisualBasic.OpenMode * Microsoft.VisualBasic.OpenAccess * Microsoft.VisualBasic.OpenShare * int -> unit
Public Sub FileOpen (FileNumber As Integer, FileName As String, Mode As OpenMode, Optional Access As OpenAccess = Microsoft.VisualBasic.OpenAccess.Default, Optional Share As OpenShare = Microsoft.VisualBasic.OpenShare.Default, Optional RecordLength As Integer = -1)

パラメーター

FileNumber
Int32

必須。 任意の有効なファイル番号。 FreeFile関数を使用して、次に使用可能なファイル番号を取得します。

FileName
String

必須。 ファイル名を指定する文字列式 。ディレクトリまたはフォルダー、ドライブを含めることができます。

Mode
OpenMode

必須。 ファイル モード ( AppendBinaryInputOutput、または Random) を指定する列挙。 詳細については、「OpenMode」を参照してください。

Access
OpenAccess

オプション。 開いているファイルで許可される操作 ( ReadWrite、または ReadWrite) を指定する列挙。 既定値は ReadWrite です。 詳細については、「OpenAccess」を参照してください。

Share
OpenShare

オプション。 他のプロセス ( SharedLock ReadLock WriteLock Read Write) によって開いているファイルで許可されない操作を指定する列挙。 既定値は Lock Read Write です。 詳細については、「OpenShare」を参照してください。

RecordLength
Int32

オプション。 32,767 (バイト) 以下の数値です。 ランダム アクセス用に開いたファイルの場合、この値がレコード長になります。 シーケンシャル ファイルの場合、この値はバッファーされる文字数になります。

例外

レコードの長さが負の値です (-1と等しくありません)。

FileName が既に開いているか、 FileName が無効です。

この例では、 FileOpen 関数を使用してファイルへの入力と出力を有効にするさまざまな使用方法を示します。

次のコードは、ファイル TestFileInput モードで開きます。

FileOpen(1, "TESTFILE", OpenMode.Input)
' Close before reopening in another mode.
FileClose(1)

次の使用例は、書き込み操作専用の Binary モードでファイルを開きます。

FileOpen(1, "TESTFILE", OpenMode.Binary, OpenAccess.Write)
' Close before reopening in another mode.
FileClose(1)

次の例では、ファイルを Random モードで開きます。 ファイルには、構造体 Personのレコードが含まれています。

Structure Person
    <VBFixedString(30)> Dim Name As String
    Dim ID As Integer
End Structure
Public Sub ExampleMethod()
    ' Count 30 for the string, plus 4 for the integer.
    FileOpen(1, "TESTFILE", OpenMode.Random, , , 34)
    ' Close before reopening in another mode.
    FileClose(1)
End Sub

このコード例では、ファイルを Output モードで開きます。どのプロセスでもファイルの読み取りまたは書き込みを行うことができます。

FileOpen(1, "TESTFILE", OpenMode.Output, OpenAccess.Default, OpenShare.Shared)
' Close before reopening in another mode.
FileClose(1)

このコード例では、ファイルを読み取り用に Binary モードで開きます。他のプロセスではファイルを読み取ることができません。

FileOpen(1, "TESTFILE", OpenMode.Binary, OpenAccess.Read,
   OpenShare.LockRead)

注釈

FileOpen関数は下位互換性のために提供され、パフォーマンスに影響を与える可能性があります。 レガシ 以外のアプリケーションの場合、 My.Computer.FileSystem オブジェクトのパフォーマンスが向上します。 詳細については、「File Access with Visual Basic」を参照してください。

ファイルに対する I/O 操作を実行する場合は、その前にファイルを開いておく必要があります。 FileOpen は、I/O 用のバッファーをファイルに割り当て、バッファーで使用するアクセス モードを決定します。

Important

ファイルに書き込むときに、書き込もうとしているファイルが存在しない場合、アプリケーションでファイルの作成が必要になる場合があります。 そのためには、ファイルを作成するディレクトリに対するアクセス許可が必要です。 ただし、 FileName で指定されたファイルが存在する場合、アプリケーションにはファイル自体に対してのみ Write アクセス許可が必要です。 可能な限り、セキュリティを強化するために、デプロイ時にファイルを作成し、ディレクトリ全体ではなく、そのファイルにのみ Write アクセス許可を付与します。 セキュリティを向上させるには、ルート ディレクトリまたは Program Files ディレクトリではなく、ユーザー ディレクトリにデータを書き込みます。

開くチャネルは、 FreeFile() 関数を使用して見つけることができます。

Important

FileOpen関数では、FileIOPermissionAccess列挙体からのReadアクセスが必要です。これは、部分信頼の状況での実行に影響する可能性があります。 詳細については、「 FileIOPermissionAccess 列挙型」を参照してください。

適用対象

こちらもご覧ください