次の方法で共有


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 Write、および Lock Read Write) を指定する列挙体。 既定値は Lock Read Write です。 詳細については、「OpenShare」を参照してください。

RecordLength
Int32

省略可能。 32,767 以下の値 (バイト単位)。 ランダム アクセス ファイルの場合は、レコード長を表します。 シーケンシャル ファイルの場合は、バッファー内の文字数を表します。

例外

レコード長が、-1 ではない負の値です。

FileName が既に開かれています。または FileName が無効です。

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

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

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 向上します。 詳しくは、「Visual Basic におけるファイル アクセス」をご覧ください。

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

重要

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

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

重要

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

適用対象

こちらもご覧ください