FileStreamとは? わかりやすく解説

FileStream クラス

同期および非同期読み取り操作と書き込み操作サポートするファイル用の Stream公開します

名前空間: System.IO
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<ComVisibleAttribute(True)> _
Public Class FileStream
    Inherits Stream
[ComVisibleAttribute(true)] 
public class FileStream : Stream
[ComVisibleAttribute(true)] 
public ref class FileStream : public
 Stream
/** @attribute ComVisibleAttribute(true) */ 
public class FileStream extends Stream
ComVisibleAttribute(true) 
public class FileStream extends
 Stream
解説解説

FileStream クラスは、ファイル システム上のファイル読み取り書き込みオープンクローズ、およびファイル関連その他のオペレーティング システム ハンドル (パイプ標準入力標準出力など) の操作使用します読み取り操作と書き込み操作は、同期または非同期どちらか指定できますFileStream バッファ入出力使用するパフォーマンス向上します

FileStream オブジェクトは、Seek メソッドによるファイルへのランダム アクセスサポートしますSeek メソッド使用すると、ファイル内の任意の位置読み取り/書き込み位置移動できます。これはバイト オフセット参照ポイントパラメータ行いますバイト オフセットシーク参照ポイントに対して相対的です。シーク参照ポイントを SeekOrigin クラス3 つのプロパティ指定に従って、基になるファイル先頭現在位置、または末尾いずれかに指定できます

メモメモ

ディスク ファイルは、常にランダム アクセスサポートします構築時に、基になるファイル種類に応じて、CanSeek プロパティtrue または false設定されます。具体的には、基になるファイル種類が winbase.h で定義される FILE_TYPE_DISK の場合CanSeek プロパティtrue設定されます。それ以外場合CanSeek プロパティfalse設定されます。

同期メソッドReadWrite、および非同期メソッドの BeginRead、BeginWrite、EndRead、EndWrite は、同期モードまたは非同期モードどちらでも動作できますが、モードはこれらのメソッドパフォーマンス影響しますFileStream は、既定ではファイル同期的開きますが、ファイル非同期的に開く FileStream(String,FileMode,FileAccess,FileShare,Int32,Boolean) コンストラクタ用意されています。

ファイル一部ロックされた状態でプロセス終了した場合、またはロック保留されているファイル閉じた場合動作未定義です。

特にディスク容量制限され環境では、すべての FileStream オブジェクトに対してDispose メソッドを必ず呼び出します。使用できるディスク容量がなく、FileStream終了する前に Dispose メソッド呼び出されていない場合IO 操作実行する例外発生する可能性あります

ディレクトリその他のファイル操作については、FileDirectoryPath の各クラストピック参照してくださいFile クラスは、ファイル パス標準入力標準出力、および標準エラー デバイス基づいた FileStream オブジェクトの作成主とする静的メソッドを持つユーティリティ クラスです。MemoryStream クラスは、FileStream同様にバイト配列関数からストリーム作成します

その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します

ストリームの位置の変更の検出

FileStream オブジェクトハンドル排他的に保持してない場合別のスレッド同時にファイル ハンドルアクセスし、ファイル ハンドル関連付けられたオペレーティング システムファイル ポインタ位置変更する可能性あります。この場合FileStream オブジェクト内にキャッシュされた位置バッファ内にキャッシュされたデータ侵害される可能性ありますFileStream オブジェクトは、キャッシュされたバッファアクセスするメソッド定期的にチェックしてオペレーティング システムハンドル位置FileStream オブジェクト使用されるキャッシュされた位置と同じであることを保証します

Read メソッド呼び出し時にハンドル位置予期しない変更検出され場合.NET Frameworkバッファ内容破棄しファイルかストリーム再度読み取ります。ファイルサイズや、ファイル ストリーム位置影響を及ぼす可能性のある他のプロセスによっては、これはパフォーマンス影響する場合あります

Write メソッド呼び出し時にハンドル位置予期しない変更検出され場合には、バッファ内容破棄され、IOException がスローさます。

SafeFileHandle プロパティ使用してハンドル公開した場合、またはコンストラクタFileStream オブジェクトSafeFileHandle プロパティ指定され場合に、FileStream オブジェクトハンドル排他的に保持しなくなります

使用例使用例

FileStream コンストラクタいくつか使用する例を次に示します

Imports System
Imports System.IO
Imports System.Text

Public Class Test

    Public Shared Sub Main()
        Dim path As String
 = "c:\temp\MyTest.txt"

        ' Delete the file if it exists.
        If File.Exists(path) Then
            File.Delete(path)
        End If

        'Create the file.
        Dim fs As FileStream = File.Create(path)

        AddText(fs, "This is some text")
        AddText(fs, "This is some more text,")
        AddText(fs, Environment.NewLine & "and this is on
 a new line")
        AddText(fs, Environment.NewLine & Environment.NewLine)
        AddText(fs, "The following is a subset of characters:"
 & Environment.NewLine)

        Dim i As Integer

        For i = 1 To 120
            AddText(fs, Convert.ToChar(i).ToString())

            'Split the output at every 10th character.
            If Math.IEEERemainder(Convert.ToDouble(i), 10) = 0
 Then
                AddText(fs, Environment.NewLine)
            End If
        Next

        fs.Close()

        'Open the stream and read it back.
        fs = File.OpenRead(path)
        Dim b(1024) As Byte
        Dim temp As UTF8Encoding = New
 UTF8Encoding(True)

        Do While fs.Read(b, 0, b.Length) >
 0
            Console.WriteLine(temp.GetString(b))
        Loop

        fs.Close()
    End Sub

    Private Shared Sub AddText(ByVal
 fs As FileStream, ByVal value As
 String)
        Dim info As Byte()
 = New UTF8Encoding(True).GetBytes(value)
        fs.Write(info, 0, info.Length)
    End Sub
End Class
using System;
using System.IO;
using System.Text;

class Test 
{
    
    public static void Main()
 
    {
        string path = @"c:\temp\MyTest.txt";

        // Delete the file if it exists.
        if (File.Exists(path)) 
        {
            File.Delete(path);
        }

        //Create the file.
        using (FileStream fs = File.Create(path)) 
        {
            AddText(fs, "This is some text");
            AddText(fs, "This is some more text,");
            AddText(fs, "\r\nand this is on a new
 line");
            AddText(fs, "\r\n\r\nThe following is a subset of characters:\r\n");

            for (int i=1;i < 120;i++) 
            {
                AddText(fs, Convert.ToChar(i).ToString());

                //Split the output at every 10th character.
                if (Math.IEEERemainder(Convert.ToDouble(i), 10)
 == 0) 
                {
                    AddText(fs, "\r\n");
                }
            }
        }

        //Open the stream and read it back.
        using (FileStream fs = File.OpenRead(path)) 
        {
            byte[] b = new byte[1024];
            UTF8Encoding temp = new UTF8Encoding(true);
            while (fs.Read(b,0,b.Length) > 0) 
            {
                Console.WriteLine(temp.GetString(b));
            }
        }
    }

    private static void
 AddText(FileStream fs, string value) 
    {
        byte[] info = new UTF8Encoding(true).GetBytes(value);
        fs.Write(info, 0, info.Length);
    }
}
using namespace System;
using namespace System::IO;
using namespace System::Text;

void AddText( FileStream^ fs, String^ value )
{
   array<Byte>^info = (gcnew UTF8Encoding( true ))->GetBytes(
 value );
   fs->Write( info, 0, info->Length );
}

int main()
{
   String^ path = "c:\\temp\\MyTest.txt";
   
   // Delete the file if it exists.
   if ( File::Exists( path ) )
   {
      File::Delete( path );
   }

   //Create the file.
   {
      FileStream^ fs = File::Create( path );
      try
      {
         AddText( fs, "This is some text" );
         AddText( fs, "This is some more text," );
         AddText( fs, "\r\nand this is on a new
 line" );
         AddText( fs, "\r\n\r\nThe following is a subset of characters:\r\n"
 );
         for ( int i = 1; i < 120; i++ )
         {
            AddText( fs, Convert::ToChar( i ).ToString() );
            
            //Split the output at every 10th character.
            if ( Math::IEEERemainder( Convert::ToDouble( i ),
 10 ) == 0 )
            {
               AddText( fs, "\r\n" );
            }
         }
      }
      finally
      {
         if ( fs )
            delete (IDisposable^)fs;
      }
   }
   
   //Open the stream and read it back.
   {
      FileStream^ fs = File::OpenRead( path );
      try
      {
         array<Byte>^b = gcnew array<Byte>(1024);
         UTF8Encoding^ temp = gcnew UTF8Encoding( true );
         while ( fs->Read( b, 0, b->Length ) > 0 )
         {
            Console::WriteLine( temp->GetString( b ) );
         }
      }
      finally
      {
         if ( fs )
            delete (IDisposable^)fs;
      }
   }
}
import System.*;
import System.IO.*;
import System.Text.*;

class Test
{
    public static void main(String[]
 args)
    {
        String path = "c:\\temp\\MyTest.txt";

        // Delete the file if it exists.
        if (File.Exists(path)) {
            File.Delete(path);
        }
        
        //Create the file.
        {
            FileStream fs = File.Create(path);
            try {
                AddText(fs, "This is some text");
                AddText(fs, "This is some more text,");
                AddText(fs, "\r\nand this is on a new
 line");
                AddText(fs, 
                    "\r\n\r\nThe following is a subset of characters:\r\n");
                for (int i = 1; i < 120;
 i++) {
                    AddText(fs, System.Convert.ToString((char)i));

                    //Split the output at every 10th character.
                    if (Math.IEEEremainder(Convert.ToDouble(i),
 10) == 0) {
                        AddText(fs, "\r\n");
                    }
                }
            }
            finally {
                fs.Dispose();
            }
        }
        //Open the stream and read it back.
        {
            FileStream fs = File.OpenRead(path);
            try {
                ubyte b[] = new ubyte[1024];
                UTF8Encoding temp = new UTF8Encoding(true);
                while (fs.Read(b, 0, b.length) > 0) {
                    Console.WriteLine(temp.GetString(b));
                }
            }
            finally {
                fs.Dispose();
            }
        }
    } //main

    private static void
 AddText(FileStream fs, String value)
    {
        ubyte info[] = (new UTF8Encoding(true)).GetBytes(value);
        fs.Write(info, 0, info.length);
    } //AddText
} //Test

ファイルを開くか、ファイル存在しない場合ファイル作成して、そのファイル末尾情報追加する例を次に示します

Imports System
Imports System.IO
Imports System.Text

Class FSOpenWrite

    Public Shared Sub Main()
        Dim fs As New FileStream("c:\Variables.txt",
 FileMode.Append, FileAccess.Write, FileShare.Write)
        fs.Close()
        Dim sw As New StreamWriter("c:\Variables.txt",
 True, Encoding.ASCII)
        Dim NextLine As String
 = "This is the appended text."
        sw.Write(NextLine)
        sw.Close()
    End Sub 'Main
End Class 'FSOpenWrite
using System;
using System.IO;
using System.Text;

class FSOpenWrite
{
    public static void Main()
    {
        FileStream fs=new FileStream("c:\\Variables.txt",
 FileMode.Append, FileAccess.Write, FileShare.Write);
        fs.Close();
        StreamWriter sw=new StreamWriter("c:\\Variables.txt",
 true, Encoding.ASCII);
        string NextLine="This is the appended line.";
        sw.Write(NextLine);
        sw.Close();
    }
}
using namespace System;
using namespace System::IO;
using namespace System::Text;
int main()
{
   FileStream^ fs = gcnew FileStream( "c:\\Variables.txt",FileMode::Append,FileAccess::Write,FileShare::Write
 );
   fs->Close();
   StreamWriter^ sw = gcnew StreamWriter( "c:\\Variables.txt",true,Encoding::ASCII
 );
   String^ NextLine = "This is the appended line.";
   sw->Write( NextLine );
   sw->Close();
}

継承階層継承階層
System.Object
   System.MarshalByRefObject
     System.IO.Stream
      System.IO.FileStream
         System.IO.IsolatedStorage.IsolatedStorageFileStream
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

FileStream コンストラクタ (IntPtr, FileAccess, Boolean, Int32, Boolean)

メモ : このコンストラクタは、互換性のために残されています。

FileStream クラス新しインスタンスを、指定した読み取り/書き込みアクセス許可FileStream インスタンス所有権バッファ サイズ、および同期状態または非同期状態を使用して指定したファイル ハンドル用に初期化します。

名前空間: System.IO
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<ObsoleteAttribute("This constructor has been deprecated. 
 Please use new FileStream(SafeFileHandle handle, FileAccess access, int bufferSize,
 bool isAsync) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed.  http://go.microsoft.com/fwlink/?linkid=14202")>
 _
Public Sub New ( _
    handle As IntPtr, _
    access As FileAccess, _
    ownsHandle As Boolean, _
    bufferSize As Integer, _
    isAsync As Boolean _
)
Dim handle As IntPtr
Dim access As FileAccess
Dim ownsHandle As Boolean
Dim bufferSize As Integer
Dim isAsync As Boolean

Dim instance As New FileStream(handle,
 access, ownsHandle, bufferSize, isAsync)
[ObsoleteAttribute("This constructor has been deprecated.  Please use new
 FileStream(SafeFileHandle handle, FileAccess access, int bufferSize,
 bool isAsync) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed.  http://go.microsoft.com/fwlink/?linkid=14202")]
 
public FileStream (
    IntPtr handle,
    FileAccess access,
    bool ownsHandle,
    int bufferSize,
    bool isAsync
)
[ObsoleteAttribute(L"This constructor has been deprecated.  Please use new
 FileStream(SafeFileHandle handle, FileAccess access, int bufferSize,
 bool isAsync) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed.  http://go.microsoft.com/fwlink/?linkid=14202")]
 
public:
FileStream (
    IntPtr handle, 
    FileAccess access, 
    bool ownsHandle, 
    int bufferSize, 
    bool isAsync
)
/** @attribute ObsoleteAttribute("This constructor has been deprecated.  Please
 use new FileStream(SafeFileHandle handle, FileAccess access,
 int bufferSize, bool isAsync) instead, and optionally make a new SafeFileHandle with ownsHandle=false
 if needed.  http://go.microsoft.com/fwlink/?linkid=14202") */ 
public FileStream (
    IntPtr handle, 
    FileAccess access, 
    boolean ownsHandle, 
    int bufferSize, 
    boolean isAsync
)
ObsoleteAttribute("This constructor has been deprecated.  Please use new
 FileStream(SafeFileHandle handle, FileAccess access, int bufferSize,
 bool isAsync) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed.  http://go.microsoft.com/fwlink/?linkid=14202")
 
public function FileStream (
    handle : IntPtr, 
    access : FileAccess, 
    ownsHandle : boolean, 
    bufferSize : int, 
    isAsync : boolean
)

パラメータ

handle

この FileStream オブジェクトによってカプセル化されるファイルファイル ハンドル

access

FileStream オブジェクトの CanRead プロパティと CanWrite プロパティ取得する FileAccess 定数

ownsHandle

FileStreamインスタンスファイル ハンドル所有する場合trueそれ以外場合false

bufferSize

バッファ サイズを示す 0 より大きな正の Int32 値。

isAsync

ハンドル非同期的に開かれた場合 (重複 I/O モード用) は trueそれ以外場合false

例外例外
例外種類条件

ArgumentOutOfRangeException

accessFileAccess.Read 未満であるか、FileAccess.ReadWrite上であるか、または bufferSize が 0 以下です。

ArgumentException

ハンドル無効です。

IOException

ディスク エラーなどの I/O エラー発生しました

または

ストリーム閉じられています。

SecurityException

呼び出し元に必要なアクセス許可がありません。

UnauthorizedAccessException

accessWrite または ReadWrite であるのに、ファイル ハンドル読み取り専用設定されているなど、指定したファイル ハンドル対すaccess 要求オペレーティング システム許可されません。

解説解説

FileStream オブジェクトには、ファイルへの指定したアクセス権付与されます。ハンドル所有権は、指定されているとおりになります。この FileStreamハンドル所有している場合は、Close メソッド呼び出しによって、ハンドル閉じられます。特に、そのファイルハンドル カウントデクリメントされますFileStream オブジェクトには、指定したバッファ サイズ付与されます。

FileStream は、ハンドル排他的に制御していると見なされますFileStreamハンドル保持しているときに、読み取り書き込み、またはシーク実行すると、データ破損することがありますデータ保護するために、ハンドル使用する前に Flush呼び出しハンドル使用後Close 以外のメソッド呼び出さないようにします。または、この FileStream コンストラクタ呼び出す前にハンドルに対して読み取りと書き込み行います

FileShare パラメータ指定しないタイプFileStream コンストラクタに対しては、FileShare.Read既定値です。

注意に関するメモ注意

特定のカルチャ設定文字セットコンパイルし、同じ文字異なるカルチャ設定取得すると、文字正しく解釈されない場合があり、例外スローされることもあります

その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します

.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

FileStream コンストラクタ (String, FileMode, FileSystemRights, FileShare, Int32, FileOptions)

メモ : このコンストラクタは、.NET Framework version 2.0新しく追加されたものです。

FileStream クラス新しインスタンスを、指定したパス作成モードアクセス権共有アクセス許可バッファ サイズ、および追加ファイル オプション使用して初期化します。

名前空間: System.IO
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Sub New ( _
    path As String, _
    mode As FileMode, _
    rights As FileSystemRights, _
    share As FileShare, _
    bufferSize As Integer, _
    options As FileOptions _
)
Dim path As String
Dim mode As FileMode
Dim rights As FileSystemRights
Dim share As FileShare
Dim bufferSize As Integer
Dim options As FileOptions

Dim instance As New FileStream(path,
 mode, rights, share, bufferSize, options)
public FileStream (
    string path,
    FileMode mode,
    FileSystemRights rights,
    FileShare share,
    int bufferSize,
    FileOptions options
)
public:
FileStream (
    String^ path, 
    FileMode mode, 
    FileSystemRights rights, 
    FileShare share, 
    int bufferSize, 
    FileOptions options
)
public FileStream (
    String path, 
    FileMode mode, 
    FileSystemRights rights, 
    FileShare share, 
    int bufferSize, 
    FileOptions options
)
public function FileStream (
    path : String, 
    mode : FileMode, 
    rights : FileSystemRights, 
    share : FileShare, 
    bufferSize : int, 
    options : FileOptions
)

パラメータ

path

現在の FileStream オブジェクトによってカプセル化されるファイル相対パスまたは絶対パス

mode

ファイルを開く方法または作成する方法決定する FileMode 定数

rights

ファイルアクセス規則および監査規則作成時に使用するアクセス権決定する FileSystemRights 定数

share

プロセスによるファイル共有方法決定する FileShare 定数

bufferSize

バッファ サイズを示す 0 より大きな正の Int32 値。bufferSize 値には 0 から 8 を設定します実際バッファ サイズは 8 バイト設定されます。

options

追加ファイル オプション指定する FileOptions 定数

例外例外
例外種類条件

ArgumentNullException

pathnull 参照 (Visual Basic では Nothing) です。

ArgumentException

path空の文字列 ("") か、空白しか含んでいないか、無効な文字1 つ以上含んでます。

または

pathファイル以外のデバイス参照しています (NTFS 環境の "con:"、"com1:"、"lpt1:" など)。

NotSupportedException

pathファイル以外のデバイス参照しています (NTFS 以外の環境の "con:"、"com1:"、"lpt1:" など)。

ArgumentException

path空の文字列 ("") か、空白しか含んでいないか、無効な文字1 つ以上含んでます。

ArgumentOutOfRangeException

bufferSize が負の値またはゼロです。

または

modeaccess、または share無効な値が含まれています。

FileNotFoundException

ファイルが見つかりません。たとえば、modeFileMode.Truncate または FileMode.Open場合に、path指定されファイル存在しません。これらのモードでは、ファイルが既に存在している必要があります

PlatformNotSupportedException

現在のオペレーティング システムWindows NT 以降ではありません。

IOException

FileMode.CreateNew指定されているのに、path指定したファイルが既に存在していることなどが原因I/O エラー発生しました

または

ストリーム閉じられています。

SecurityException

呼び出し元に必要なアクセス許可がありません。

DirectoryNotFoundException

割り当てられていないドライブであるなど、指定されパス無効です。

UnauthorizedAccessException

accessWrite または ReadWrite であるのに、ファイルまたはディレクトリ読み取り専用設定されているなど、指定した path対すaccess 要求オペレーティング システム許可されません。

PathTooLongException

指定した pathファイル名、またはその両方システム定義の最大長を超えてます。たとえば、Windows ベースプラットフォーム場合パス長さ248 文字未満ファイル名長さ260 文字未満である必要があります

解説解説

.NET Framework では、"\\.\PHYSICALDRIVE0" など、デバイス名を指定したパス使用して物理ディスク直接アクセスすることはできません。

この FileStream コンストラクタ使用してファイル作成時のアクセス権適用します。既存ファイル対す権限アクセスしたり変更したりするには、GetAccessControl メソッドおよび SetAccessControl メソッド使用検討してください

fileOptions パラメータ使用すると、FileStream オブジェクトの作成時に活用できる、より高度な操作利用できます

path パラメータにはファイル名指定できます。このファイルには、UNC 共有ファイル含まれます。

メモ注意

特定のカルチャ設定文字セットコンパイルし、同じ文字異なるカルチャ設定取得すると、文字正しく解釈されない場合があり、例外スローされることもあります

その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します

.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

FileStream コンストラクタ (String, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity)

メモ : このコンストラクタは、.NET Framework version 2.0新しく追加されたものです。

FileStream クラス新しインスタンスを、指定したパス作成モードアクセス権共有アクセス許可バッファ サイズ追加ファイル オプションアクセス制御、および監査セキュリティ使用して初期化します。

名前空間: System.IO
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Sub New ( _
    path As String, _
    mode As FileMode, _
    rights As FileSystemRights, _
    share As FileShare, _
    bufferSize As Integer, _
    options As FileOptions, _
    fileSecurity As FileSecurity _
)
Dim path As String
Dim mode As FileMode
Dim rights As FileSystemRights
Dim share As FileShare
Dim bufferSize As Integer
Dim options As FileOptions
Dim fileSecurity As FileSecurity

Dim instance As New FileStream(path,
 mode, rights, share, bufferSize, options, fileSecurity)
public FileStream (
    string path,
    FileMode mode,
    FileSystemRights rights,
    FileShare share,
    int bufferSize,
    FileOptions options,
    FileSecurity fileSecurity
)
public:
FileStream (
    String^ path, 
    FileMode mode, 
    FileSystemRights rights, 
    FileShare share, 
    int bufferSize, 
    FileOptions options, 
    FileSecurity^ fileSecurity
)
public FileStream (
    String path, 
    FileMode mode, 
    FileSystemRights rights, 
    FileShare share, 
    int bufferSize, 
    FileOptions options, 
    FileSecurity fileSecurity
)
public function FileStream (
    path : String, 
    mode : FileMode, 
    rights : FileSystemRights, 
    share : FileShare, 
    bufferSize : int, 
    options : FileOptions, 
    fileSecurity : FileSecurity
)

パラメータ

path

現在の FileStream オブジェクトによってカプセル化されるファイル相対パスまたは絶対パス

mode

ファイルを開く方法または作成する方法決定する FileMode 定数

rights

ファイルアクセス規則および監査規則作成時に使用するアクセス権決定する FileSystemRights 定数

share

プロセスによるファイル共有方法決定する FileShare 定数

bufferSize

バッファ サイズを示す 0 より大きな正の Int32 値。bufferSize 値には 0 から 8 を設定します実際バッファ サイズは 8 バイト設定されます。

options

追加ファイル オプション指定する FileOptions 定数

fileSecurity

ファイルアクセス制御と監査セキュリティ決定する FileSecurity 定数

例外例外
例外種類条件

ArgumentNullException

pathnull 参照 (Visual Basic では Nothing) です。

ArgumentException

path空の文字列 ("") か、空白しか含んでいないか、無効な文字1 つ以上含んでます。

または

pathファイル以外のデバイス参照しています (NTFS 環境の "con:"、"com1:"、"lpt1:" など)。

NotSupportedException

pathファイル以外のデバイス参照しています (NTFS 以外の環境の "con:"、"com1:"、"lpt1:" など)。

ArgumentException

path空の文字列 ("") か、空白しか含んでいないか、無効な文字1 つ以上含んでます。

ArgumentOutOfRangeException

bufferSize が負の値またはゼロです。

または

modeaccess、または share無効な値が含まれています。

FileNotFoundException

ファイルが見つかりません。たとえば、modeFileMode.Truncate または FileMode.Open場合に、path指定されファイル存在しません。これらのモードでは、ファイルが既に存在している必要があります

IOException

FileMode.CreateNew指定されているのに、path指定したファイルが既に存在していることなどが原因I/O エラー発生しました

または

ストリーム閉じられています。

SecurityException

呼び出し元に必要なアクセス許可がありません。

DirectoryNotFoundException

割り当てられていないドライブであるなど、指定されパス無効です。

UnauthorizedAccessException

accessWrite または ReadWrite であるのに、ファイルまたはディレクトリ読み取り専用設定されているなど、指定した path対すaccess 要求オペレーティング システム許可されません。

PathTooLongException

指定した pathファイル名、またはその両方システム定義の最大長を超えてます。たとえば、Windows ベースプラットフォーム場合パス長さ248 文字未満ファイル名長さ260 文字未満である必要があります

PlatformNotSupportedException

現在のオペレーティング システムWindows NT 以降ではありません。

解説解説

.NET Framework では、"\\.\PHYSICALDRIVE0" など、デバイス名を指定したパス使用して物理ディスク直接アクセスすることはできません。

この FileStream コンストラクタ使用してファイル作成時のアクセス権適用します。既存ファイル対す権限アクセスしたり変更したりするには、GetAccessControl メソッドおよび SetAccessControl メソッド使用検討してください

fileOptions パラメータ使用すると、FileStream オブジェクトの作成時に活用できる、より高度な操作利用できます

path パラメータにはファイル名指定できます。このファイルには、UNC 共有ファイル含まれます。

メモ注意

特定のカルチャ設定文字セットコンパイルし、同じ文字異なるカルチャ設定取得すると、文字正しく解釈されない場合があり、例外スローされることもあります

その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します

使用例使用例

FileStream オブジェクト使用してファイルデータ書き込み次にデータ読み取る例を次に示します

Imports System
Imports System.IO
Imports System.Text
Imports System.Security.AccessControl



Module FileStreamExample

    Sub Main()
        Try
            ' Create a file and write data to it.
            ' Create an array of bytes.
            Dim messageByte As Byte()
 = Encoding.ASCII.GetBytes("Here is some data.")

            ' Specify an access control list (ACL)
            Dim fs As New
 FileSecurity()

            fs.AddAccessRule(New FileSystemAccessRule("DOMAINNAME\AccountName",
 FileSystemRights.ReadData, AccessControlType.Allow))

            ' Create a file using the FileStream class.
            Dim fWrite As New
 FileStream("test.txt", FileMode.Create, FileSystemRights.Modify,
 FileShare.None, 8, FileOptions.None, fs)

            ' Write the number of bytes to the file.
            fWrite.WriteByte(System.Convert.ToByte(messageByte.Length))

            ' Write the bytes to the file.
            fWrite.Write(messageByte, 0, messageByte.Length)

            ' Close the stream.
            fWrite.Close()


            ' Open a file and read the number of bytes.
            Dim fRead As New
 FileStream("test.txt", FileMode.Open)

            ' The first byte is the string length.
            Dim length As Integer
 = Fix(fRead.ReadByte())

            ' Create a new byte array for the data.
            Dim readBytes(length) As Byte

            ' Read the data from the file.
            fRead.Read(readBytes, 0, readBytes.Length)

            ' Close the stream.
            fRead.Close()

            ' Display the data.
            Console.WriteLine(Encoding.ASCII.GetString(readBytes))

            Console.WriteLine("Done writing and reading data.")
        Catch e As Exception
            Console.WriteLine(e)
        End Try

        Console.ReadLine()

    End Sub
End Module

using System;
using System.IO;
using System.Text;
using System.Security.AccessControl;

namespace FileSystemExample
{
    class FileStreamExample
    {
        public static void
 Main()
        {
            try
            {
                // Create a file and write data to it.

                // Create an array of bytes.
                byte[] messageByte = Encoding.ASCII.GetBytes("Here is some data.");

                // Specify an access control list (ACL)
                FileSecurity fs = new FileSecurity();

                fs.AddAccessRule(new FileSystemAccessRule(@"DOMAINNAME\AccountName"
,
                                                            FileSystemRights.ReadData
,
                                                            AccessControlType.Allow));

                // Create a file using the FileStream class.
                FileStream fWrite = new FileStream("test.txt",
 FileMode.Create, FileSystemRights.Modify, FileShare.None, 8, FileOptions.None,
 fs);

                // Write the number of bytes to the file.
                fWrite.WriteByte((byte)messageByte.Length);

                // Write the bytes to the file.
                fWrite.Write(messageByte, 0, messageByte.Length);

                // Close the stream.
                fWrite.Close();

                
                // Open a file and read the number of bytes.

                FileStream fRead = new FileStream("test.txt",
 FileMode.Open);

                // The first byte is the string length.
                int length = (int)fRead.ReadByte();

                // Create a new byte array for the data.
                byte[] readBytes = new byte[length];

                // Read the data from the file.
                fRead.Read(readBytes, 0, readBytes.Length);

                // Close the stream.
                fRead.Close();

                // Display the data.
                Console.WriteLine(Encoding.ASCII.GetString(readBytes));

                Console.WriteLine("Done writing and reading data.");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            Console.ReadLine();
        }
    }
}

using namespace System;
using namespace System::IO;
using namespace System::Text;
using namespace System::Security::AccessControl;
using namespace System::Security::Principal;

int main()
{
    try
    {
        // Create a file and write data to it.

        // Create an array of bytes.
        array<Byte>^ messageByte =
            Encoding::ASCII->GetBytes("Here is some data.");

        // Specify an access control list (ACL)
        FileSecurity^ fs = gcnew FileSecurity();

        fs->AddAccessRule(
            gcnew FileSystemAccessRule("MYDOMAIN\\MyAccount",
            FileSystemRights::Modify, AccessControlType::Allow));

        // Create a file using the FileStream class.
        FileStream^ fWrite = gcnew FileStream("test.txt",
            FileMode::Create, FileSystemRights::Modify,
            FileShare::None, 8, FileOptions::None, fs);

        // Write the number of bytes to the file.
        fWrite->WriteByte((Byte)messageByte->Length);

        // Write the bytes to the file.
        fWrite->Write(messageByte, 0, messageByte->Length);

        // Close the stream.
        fWrite->Close();

        // Open a file and read the number of bytes.

        FileStream^ fRead = 
            gcnew FileStream("test.txt", FileMode::Open);

        // The first byte is the string length.
        int length = (int)fRead->ReadByte();

        // Create a new byte array for the data.
        array<Byte>^ readBytes = gcnew array<Byte>(length);

        // Read the data from the file.
        fRead->Read(readBytes, 0, readBytes->Length);

        // Close the stream.
        fRead->Close();

        // Display the data.
        Console::WriteLine(Encoding::ASCII->GetString(readBytes));

        Console::WriteLine("Done writing and reading data.");
    }

    catch (IdentityNotMappedException^)
    {
        Console::WriteLine("You need to use your own credentials " +
            " 'MYDOMAIN\\MyAccount'.");
    }

    catch (IOException^ ex)
    {
        Console::WriteLine(ex->Message);
    }
}

.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

FileStream コンストラクタ

FileStream クラス新しインスタンス初期化します。
オーバーロードの一覧オーバーロードの一覧

名前 説明
FileStream (IntPtr, FileAccess) FileStream クラス新しインスタンスを、指定した読み取り/書き込みアクセス許可使用して指定したファイル ハンドル用に初期化します。
FileStream (SafeFileHandle, FileAccess) FileStream クラス新しインスタンスを、指定した読み取り/書き込みアクセス許可使用して指定したファイル ハンドル用に初期化します。
FileStream (String, FileMode) FileStream クラス新しインスタンスを、指定したパス作成モード使用して作成します

.NET Compact Framework によってサポートされています。

FileStream (IntPtr, FileAccess, Boolean) FileStream クラス新しインスタンスを、指定した読み取り/書き込みアクセス許可FileStream インスタンス所有権使用して指定したファイル ハンドル用に初期化します。
FileStream (SafeFileHandle, FileAccess, Int32) FileStream クラス新しインスタンスを、指定した読み取り/書き込みアクセス許可、およびバッファ サイズ使用して指定したファイル ハンドル用に初期化します。
FileStream (String, FileMode, FileAccess) FileStream クラス新しインスタンスを、指定したパス作成モード、および読み取り/書き込みアクセス許可使用して初期化します。

.NET Compact Framework によってサポートされています。

FileStream (IntPtr, FileAccess, Boolean, Int32) FileStream クラス新しインスタンスを、指定した読み取り/書き込みアクセス許可FileStream インスタンス所有権、およびバッファ サイズ使用して指定したファイル ハンドル用に初期化します。
FileStream (SafeFileHandle, FileAccess, Int32, Boolean) FileStream クラス新しインスタンスを、指定した読み取り/書き込みアクセス許可バッファ サイズ、および同期状態または非同期状態を使用して指定したファイル ハンドル用に初期化します。
FileStream (String, FileMode, FileAccess, FileShare) FileStream クラス新しインスタンスを、指定したパス作成モード読み取り/書き込みアクセス許可、および共有アクセス許可使用して初期化します。

.NET Compact Framework によってサポートされています。

FileStream (IntPtr, FileAccess, Boolean, Int32, Boolean) FileStream クラス新しインスタンスを、指定した読み取り/書き込みアクセス許可FileStream インスタンス所有権バッファ サイズ、および同期状態または非同期状態を使用して指定したファイル ハンドル用に初期化します。
FileStream (String, FileMode, FileAccess, FileShare, Int32) FileStream クラス新しインスタンスを、指定したパス作成モード読み取り/書き込みアクセス許可共有アクセス許可、およびバッファ サイズ使用して初期化します。

.NET Compact Framework によってサポートされています。

FileStream (String, FileMode, FileAccess, FileShare, Int32, Boolean) FileStream クラス新しインスタンスを、指定したパス作成モード読み取り/書き込みアクセス許可共有アクセス許可バッファ サイズ、および同期状態または非同期状態を使用して初期化します。

.NET Compact Framework によってサポートされています。

FileStream (String, FileMode, FileAccess, FileShare, Int32, FileOptions) FileStream クラス新しインスタンスを、指定したパス作成モード読み取り/書き込みアクセス許可共有アクセス許可同一ファイルに対して他の FileStream が保有できるアクセスバッファ サイズ、および追加ファイル オプション使用して初期化します。
FileStream (String, FileMode, FileSystemRights, FileShare, Int32, FileOptions) FileStream クラス新しインスタンスを、指定したパス作成モードアクセス権共有アクセス許可バッファ サイズ、および追加ファイル オプション使用して初期化します。
FileStream (String, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) FileStream クラス新しインスタンスを、指定したパス作成モードアクセス権共有アクセス許可バッファ サイズ追加ファイル オプションアクセス制御、および監査セキュリティ使用して初期化します。
参照参照

FileStream コンストラクタ (SafeFileHandle, FileAccess, Int32, Boolean)

メモ : このコンストラクタは、.NET Framework version 2.0新しく追加されたものです。

FileStream クラス新しインスタンスを、指定した読み取り/書き込みアクセス許可バッファ サイズ、および同期状態または非同期状態を使用して指定したファイル ハンドル用に初期化します。

名前空間: System.IO
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Sub New ( _
    handle As SafeFileHandle, _
    access As FileAccess, _
    bufferSize As Integer, _
    isAsync As Boolean _
)
Dim handle As SafeFileHandle
Dim access As FileAccess
Dim bufferSize As Integer
Dim isAsync As Boolean

Dim instance As New FileStream(handle,
 access, bufferSize, isAsync)
public FileStream (
    SafeFileHandle handle,
    FileAccess access,
    int bufferSize,
    bool isAsync
)
public:
FileStream (
    SafeFileHandle^ handle, 
    FileAccess access, 
    int bufferSize, 
    bool isAsync
)
public FileStream (
    SafeFileHandle handle, 
    FileAccess access, 
    int bufferSize, 
    boolean isAsync
)
public function FileStream (
    handle : SafeFileHandle, 
    access : FileAccess, 
    bufferSize : int, 
    isAsync : boolean
)

パラメータ

handle

この FileStream オブジェクトによってカプセル化されるファイルファイル ハンドル

access

FileStream オブジェクトの CanRead プロパティと CanWrite プロパティ取得する FileAccess 定数

bufferSize

バッファ サイズを示す 0 より大きな正の Int32 値。

isAsync

ハンドル非同期的に開かれた場合 (重複 I/O モード用) は trueそれ以外場合false

例外例外
例外種類条件

ArgumentException

handle パラメータ無効なハンドルです。

または

handle パラメータ同期ハンドルであるのに、非同期的に使用されました。

ArgumentOutOfRangeException

bufferSize パラメータが負の値です。

IOException

ディスク エラーなどの I/O エラー発生しました

または

ストリーム閉じられています。

SecurityException

呼び出し元に必要なアクセス許可がありません。

UnauthorizedAccessException

accessWrite または ReadWrite であるのに、ファイル ハンドル読み取り専用設定されているなど、指定したファイル ハンドル対すaccess 要求オペレーティング システム許可されません。

解説解説

FileStream は、ハンドル排他的に制御していると見なされますFileStreamハンドル保持しているときに、読み取り書き込み、またはシーク実行すると、データ破損することがありますデータ保護するために、ハンドル使用する前に Flush呼び出しハンドル使用後Close 以外のメソッド呼び出さないようにします。または、この FileStream コンストラクタ呼び出す前にハンドルに対して読み取りと書き込み行います

FileShare パラメータ指定しないタイプFileStream コンストラクタに対しては、FileShare.Read既定値です。

注意に関するメモ注意

特定のカルチャ設定文字セットコンパイルし、同じ文字異なるカルチャ設定取得すると、文字正しく解釈されない場合があり、例外スローされることもあります

その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します

.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

FileStream コンストラクタ (String, FileMode, FileAccess)

FileStream クラス新しインスタンスを、指定したパス作成モード、および読み取り/書き込みアクセス許可使用して初期化します。

名前空間: System.IO
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

例外例外
例外種類条件

ArgumentNullException

pathnull 参照 (Visual Basic では Nothing) です。

ArgumentException

path空の文字列 ("") か、空白しか含んでいないか、無効な文字1 つ以上含んでます。

または

pathファイル以外のデバイス参照しています (NTFS 環境の "con:"、"com1:"、"lpt1:" など)。

NotSupportedException

pathファイル以外のデバイス参照しています (NTFS 以外の環境の "con:"、"com1:"、"lpt1:" など)。

ArgumentException

path空の文字列 ("") か、空白しか含んでいないか、無効な文字1 つ以上含んでます。

FileNotFoundException

ファイルが見つかりません。たとえば、modeFileMode.Truncate または FileMode.Open場合に、path指定されファイル存在しません。これらのモードでは、ファイルが既に存在している必要があります

IOException

FileMode.CreateNew指定されているのに、path指定したファイルが既に存在していることなどが原因I/O エラー発生しました

または

ストリーム閉じられています。

SecurityException

呼び出し元に必要なアクセス許可がありません。

DirectoryNotFoundException

割り当てられていないドライブであるなど、指定されパス無効です。

UnauthorizedAccessException

accessWrite または ReadWrite であるのに、ファイルまたはディレクトリ読み取り専用設定されているなど、指定した path対すaccess 要求オペレーティング システム許可されません。

PathTooLongException

指定したパスファイル名、またはその両方システム定義の最大長を超えてます。たとえば、Windows ベースプラットフォーム場合パス長さ248 文字未満ファイル名長さ260 文字未満である必要があります

ArgumentOutOfRangeException

mode無効な値が含まれています。

解説解説

.NET Framework では、"\\.\PHYSICALDRIVE0" など、デバイス名を指定したパス使用して物理ディスク直接アクセスすることはできません。

path パラメータにはファイル名指定できます。このファイルには、UNC 共有ファイル含まれます。

コンストラクタにはファイルへの読み取り/書き込みアクセス付与されます。ファイル共有読み取りモード開きます。そのため、FileStream オブジェクト閉じられるまで、この処理または別の処理でファイル書き込み用に開く要求失敗しますが、読み取り要求成功しますバッファ サイズは、既定サイズである 8192 バイト (8 KB) に設定されます。

メモ注意

特定のカルチャ設定文字セットコンパイルし、同じ文字異なるカルチャ設定取得すると、文字正しく解釈されない場合があり、例外スローされることもあります

その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します

.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

FileStream コンストラクタ (IntPtr, FileAccess, Boolean, Int32)

メモ : このコンストラクタは、互換性のために残されています。

FileStream クラス新しインスタンスを、指定した読み取り/書き込みアクセス許可FileStream インスタンス所有権、およびバッファ サイズ使用して指定したファイル ハンドル用に初期化します。

名前空間: System.IO
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<ObsoleteAttribute("This constructor has been deprecated. 
 Please use new FileStream(SafeFileHandle handle, FileAccess access, int bufferSize)
 instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed.  http://go.microsoft.com/fwlink/?linkid=14202")> _
Public Sub New ( _
    handle As IntPtr, _
    access As FileAccess, _
    ownsHandle As Boolean, _
    bufferSize As Integer _
)
Dim handle As IntPtr
Dim access As FileAccess
Dim ownsHandle As Boolean
Dim bufferSize As Integer

Dim instance As New FileStream(handle,
 access, ownsHandle, bufferSize)
[ObsoleteAttribute("This constructor has been deprecated.  Please use new
 FileStream(SafeFileHandle handle, FileAccess access, int bufferSize)
 instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed.  http://go.microsoft.com/fwlink/?linkid=14202")]
 
public FileStream (
    IntPtr handle,
    FileAccess access,
    bool ownsHandle,
    int bufferSize
)
[ObsoleteAttribute(L"This constructor has been deprecated.  Please use new
 FileStream(SafeFileHandle handle, FileAccess access, int bufferSize)
 instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed.  http://go.microsoft.com/fwlink/?linkid=14202")]
 
public:
FileStream (
    IntPtr handle, 
    FileAccess access, 
    bool ownsHandle, 
    int bufferSize
)
/** @attribute ObsoleteAttribute("This constructor has been deprecated.  Please
 use new FileStream(SafeFileHandle handle, FileAccess access,
 int bufferSize) instead, and optionally make a new SafeFileHandle with ownsHandle=false if
 needed.  http://go.microsoft.com/fwlink/?linkid=14202") */ 
public FileStream (
    IntPtr handle, 
    FileAccess access, 
    boolean ownsHandle, 
    int bufferSize
)
ObsoleteAttribute("This constructor has been deprecated.  Please use new
 FileStream(SafeFileHandle handle, FileAccess access, int bufferSize)
 instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed.  http://go.microsoft.com/fwlink/?linkid=14202")
 
public function FileStream (
    handle : IntPtr, 
    access : FileAccess, 
    ownsHandle : boolean, 
    bufferSize : int
)

パラメータ

handle

この FileStream オブジェクトによってカプセル化されるファイルファイル ハンドル

access

FileStream オブジェクトの CanRead プロパティと CanWrite プロパティ取得する FileAccess 定数

ownsHandle

FileStreamインスタンスファイル ハンドル所有する場合trueそれ以外場合false

bufferSize

バッファ サイズを示す 0 より大きな正の Int32 値。

例外例外
例外種類条件

ArgumentOutOfRangeException

bufferSize が負の値です。

IOException

ディスク エラーなどの I/O エラー発生しました

または

ストリーム閉じられています。

SecurityException

呼び出し元に必要なアクセス許可がありません。

UnauthorizedAccessException

accessWrite または ReadWrite であるのに、ファイル ハンドル読み取り専用設定されているなど、指定したファイル ハンドル対すaccess 要求オペレーティング システム許可されません。

解説解説

FileStream オブジェクトには、ファイルへの指定したアクセス権付与されます。ハンドル所有権は、指定されているとおりになります。この FileStreamハンドル所有している場合は、Close メソッド呼び出しによって、ハンドル閉じられます。特に、そのファイルハンドル カウントデクリメントされますFileStream オブジェクトには、指定したバッファ サイズ付与されます。

FileStream は、ハンドル排他的に制御していると見なされますFileStreamハンドル保持しているときに、読み取り書き込み、またはシーク実行すると、データ破損することがありますデータ保護するために、ハンドル使用する前に Flush呼び出しハンドル使用後Close 以外のメソッド呼び出さないようにします。または、この FileStream コンストラクタ呼び出す前にハンドルに対して読み取りと書き込み行います

FileShare パラメータ指定しないタイプFileStream コンストラクタに対しては、FileShare.Read既定値です。

注意に関するメモ注意

特定のカルチャ設定文字セットコンパイルし、同じ文字異なるカルチャ設定取得すると、文字正しく解釈されない場合があり、例外スローされることもあります

その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します

.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

FileStream コンストラクタ (IntPtr, FileAccess, Boolean)

メモ : このコンストラクタは、互換性のために残されています。

FileStream クラス新しインスタンスを、指定した読み取り/書き込みアクセス許可FileStream インスタンス所有権使用して指定したファイル ハンドル用に初期化します。

名前空間: System.IO
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<ObsoleteAttribute("This constructor has been deprecated. 
 Please use new FileStream(SafeFileHandle handle, FileAccess access) instead, and
 optionally make a new SafeFileHandle with ownsHandle=false if needed.  http://go.microsoft.com/fwlink/?linkid=14202")> _
Public Sub New ( _
    handle As IntPtr, _
    access As FileAccess, _
    ownsHandle As Boolean _
)
Dim handle As IntPtr
Dim access As FileAccess
Dim ownsHandle As Boolean

Dim instance As New FileStream(handle,
 access, ownsHandle)
[ObsoleteAttribute("This constructor has been deprecated.  Please use new
 FileStream(SafeFileHandle handle, FileAccess access) instead, and optionally make
 a new SafeFileHandle with ownsHandle=false if needed.  http://go.microsoft.com/fwlink/?linkid=14202")]
 
public FileStream (
    IntPtr handle,
    FileAccess access,
    bool ownsHandle
)
[ObsoleteAttribute(L"This constructor has been deprecated.  Please use new
 FileStream(SafeFileHandle handle, FileAccess access) instead, and optionally make
 a new SafeFileHandle with ownsHandle=false if needed.  http://go.microsoft.com/fwlink/?linkid=14202")]
 
public:
FileStream (
    IntPtr handle, 
    FileAccess access, 
    bool ownsHandle
)
/** @attribute ObsoleteAttribute("This constructor has been deprecated.  Please
 use new FileStream(SafeFileHandle handle, FileAccess access)
 instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed.  http://go.microsoft.com/fwlink/?linkid=14202")
 */ 
public FileStream (
    IntPtr handle, 
    FileAccess access, 
    boolean ownsHandle
)
ObsoleteAttribute("This constructor has been deprecated.  Please use new
 FileStream(SafeFileHandle handle, FileAccess access) instead, and optionally make
 a new SafeFileHandle with ownsHandle=false if needed.  http://go.microsoft.com/fwlink/?linkid=14202")
 
public function FileStream (
    handle : IntPtr, 
    access : FileAccess, 
    ownsHandle : boolean
)

パラメータ

handle

現在の FileStream オブジェクトによってカプセル化されるファイルファイル ハンドル

access

FileStream オブジェクトの CanRead プロパティと CanWrite プロパティ取得する FileAccess 定数

ownsHandle

FileStreamインスタンスファイル ハンドル所有する場合trueそれ以外場合false

例外例外
例外種類条件

ArgumentException

accessFileAccessフィールドではありません。

SecurityException

呼び出し元に必要なアクセス許可がありません。

IOException

ディスク エラーなどの I/O エラー発生しました

または

ストリーム閉じられています。

UnauthorizedAccessException

accessWrite または ReadWrite であるのに、ファイル ハンドル読み取り専用設定されているなど、指定したファイル ハンドル対すaccess 要求オペレーティング システム許可されません。

解説解説

FileStream オブジェクトには、ファイルへの指定したアクセス権付与されます。ハンドル所有権は、指定されているとおりになります。このプロセスハンドル所有している場合は、Close メソッド呼び出しによって、ハンドル閉じられファイルハンドル カウントデクリメントされますFileStream オブジェクトには、8,192 バイト既定バッファ サイズ付与されます。

FileStream は、ハンドル排他的に制御していると見なされますFileStreamハンドル保持しているときに、読み取り書き込み、またはシーク実行すると、データ破損することがありますデータ保護するために、ハンドル使用する前に Flush呼び出しハンドル使用後Close 以外のメソッド呼び出さないようにします。

FileShare パラメータ指定しないタイプFileStream コンストラクタに対しては、FileShare.Read既定値です。

注意に関するメモ注意

特定のカルチャ設定文字セットコンパイルし、同じ文字異なるカルチャ設定取得すると、文字正しく解釈されない場合があり、例外スローされることもあります

その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します

.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

FileStream コンストラクタ (SafeFileHandle, FileAccess, Int32)

メモ : このコンストラクタは、.NET Framework version 2.0新しく追加されたものです。

FileStream クラス新しインスタンスを、指定した読み取り/書き込みアクセス許可、およびバッファ サイズ使用して指定したファイル ハンドル用に初期化します。

名前空間: System.IO
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Sub New ( _
    handle As SafeFileHandle, _
    access As FileAccess, _
    bufferSize As Integer _
)
Dim handle As SafeFileHandle
Dim access As FileAccess
Dim bufferSize As Integer

Dim instance As New FileStream(handle,
 access, bufferSize)
public FileStream (
    SafeFileHandle handle,
    FileAccess access,
    int bufferSize
)
public:
FileStream (
    SafeFileHandle^ handle, 
    FileAccess access, 
    int bufferSize
)
public FileStream (
    SafeFileHandle handle, 
    FileAccess access, 
    int bufferSize
)
public function FileStream (
    handle : SafeFileHandle, 
    access : FileAccess, 
    bufferSize : int
)

パラメータ

handle

現在の FileStream オブジェクトによってカプセル化されるファイルファイル ハンドル

access

FileStream オブジェクトの CanRead プロパティと CanWrite プロパティ取得する FileAccess 定数

bufferSize

バッファ サイズを示す 0 より大きな正の Int32 値。

例外例外
例外種類条件

ArgumentException

handle パラメータ無効なハンドルです。

または

handle パラメータ同期ハンドルであるのに、非同期的に使用されました。

ArgumentOutOfRangeException

bufferSize パラメータが負の値です。

IOException

ディスク エラーなどの I/O エラー発生しました

または

ストリーム閉じられています。

SecurityException

呼び出し元に必要なアクセス許可がありません。

UnauthorizedAccessException

accessWrite または ReadWrite であるのに、ファイル ハンドル読み取り専用設定されているなど、指定したファイル ハンドル対すaccess 要求オペレーティング システム許可されません。

解説解説

FileStream は、ハンドル排他的に制御していると見なされますFileStreamハンドル保持しているときに、読み取り書き込み、またはシーク実行すると、データ破損することがありますデータ保護するために、ハンドル使用する前に Flush呼び出しハンドル使用後Close 以外のメソッド呼び出さないようにします。または、この FileStream コンストラクタ呼び出す前にハンドルに対して読み取りと書き込み行います

FileShare パラメータ指定しないタイプFileStream コンストラクタに対しては、FileShare.Read既定値です。

注意に関するメモ注意

特定のカルチャ設定文字セットコンパイルし、同じ文字異なるカルチャ設定取得すると、文字正しく解釈されない場合があり、例外スローされることもあります

その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します

.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

FileStream コンストラクタ (String, FileMode)

FileStream クラス新しインスタンスを、指定したパス作成モード使用して作成します

名前空間: System.IO
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Sub New ( _
    path As String, _
    mode As FileMode _
)
Dim path As String
Dim mode As FileMode

Dim instance As New FileStream(path,
 mode)
public FileStream (
    string path,
    FileMode mode
)
public:
FileStream (
    String^ path, 
    FileMode mode
)
public FileStream (
    String path, 
    FileMode mode
)
public function FileStream (
    path : String, 
    mode : FileMode
)

パラメータ

path

現在の FileStream オブジェクトによってカプセル化されるファイル相対パスまたは絶対パス

mode

ファイルを開く方法または作成する方法決定する FileMode 定数

例外例外
例外種類条件

ArgumentException

path空の文字列 ("") か、空白しか含んでいないか、無効な文字1 つ以上含んでます。

または

pathファイル以外のデバイス参照しています (NTFS 環境の "con:"、"com1:"、"lpt1:" など)。

NotSupportedException

pathファイル以外のデバイス参照しています (NTFS 以外の環境の "con:"、"com1:"、"lpt1:" など)。

ArgumentNullException

pathnull 参照 (Visual Basic では Nothing) です。

SecurityException

呼び出し元に必要なアクセス許可がありません。

FileNotFoundException

ファイルが見つかりません。たとえば、modeFileMode.Truncate または FileMode.Open場合に、path指定されファイル存在しません。これらのモードでは、ファイルが既に存在している必要があります

IOException

FileMode.CreateNew指定されているのに、path指定したファイルが既に存在していることなどが原因I/O エラー発生しました

または

ストリーム閉じられています。

DirectoryNotFoundException

割り当てられていないドライブであるなど、指定されパス無効です。

PathTooLongException

指定したパスファイル名、またはその両方システム定義の最大長を超えてます。たとえば、Windows ベースプラットフォーム場合パス長さ248 文字未満ファイル名長さ260 文字未満である必要があります

ArgumentOutOfRangeException

mode無効な値が含まれています。

解説解説

.NET Framework では、"\\.\PHYSICALDRIVE0" など、デバイス名を指定したパス使用して物理ディスク直接アクセスすることはできません。

path パラメータにはファイル名指定できます。このファイルには、UNC 共有ファイル含まれます。

コンストラクタにはファイルへの読み取り/書き込みアクセス付与されます。ファイル共有読み取りモード開きます。そのため、FileStream オブジェクト閉じられるまで、この処理または別の処理でファイル書き込み用に開く要求失敗しますが、読み取り要求成功しますバッファ サイズは、既定サイズである 4096 バイト (4 KB) に設定されます。

メモ注意

特定のカルチャ設定文字セットコンパイルし、同じ文字異なるカルチャ設定取得すると、文字正しく解釈されない場合があり、例外スローされることもあります

その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します

使用例使用例

ファイルデータバイト単位書き込み、さらにデータ正常に書き込まれたことを確認する例を次に示します

Imports Microsoft.VisualBasic
Imports System
Imports System.IO
Imports System.Text

Class FStream

    Shared Sub Main()

        Const fileName As String
 = "Test#@@#.dat"

        ' Create random data to write to the file.
        Dim dataArray(100000) As Byte
        Dim randomGenerator As New
 Random()
        randomGenerator.NextBytes(dataArray)

        Dim fileStream As FileStream = _
            new FileStream(fileName, FileMode.Create)
        Try

            ' Write the data to the file, byte by byte.
            For i As Integer
 = 0 To dataArray.Length - 1
                fileStream.WriteByte(dataArray(i))
            Next i

            ' Set the stream position to the beginning of the stream.
            fileStream.Seek(0, SeekOrigin.Begin)

            ' Read and verify the data.
            For i As Integer
 = 0 To _
                CType(fileStream.Length, Integer) - 1

                If dataArray(i) <> fileStream.ReadByte()
 Then
                    Console.WriteLine("Error writing data.")
                    Return
                End If
            Next i
            Console.WriteLine("The data was written to {0} "
 & _
                "and verified.", fileStream.Name)
        Finally
            fileStream.Close()
        End Try
    
    End Sub
End Class
using System;
using System.IO;

class FStream
{
    static void Main()
    {
        const string fileName = "Test#@@#.dat";

        // Create random data to write to the file.
        byte[] dataArray = new byte[100000];
        new Random().NextBytes(dataArray);

        using(FileStream  
            fileStream = new FileStream(fileName, FileMode.Create))
        {
            // Write the data to the file, byte by byte.
            for(int i = 0; i < dataArray.Length;
 i++)
            {
                fileStream.WriteByte(dataArray[i]);
            }

            // Set the stream position to the beginning of the file.
            fileStream.Seek(0, SeekOrigin.Begin);

            // Read and verify the data.
            for(int i = 0; i < fileStream.Length;
 i++)
            {
                if(dataArray[i] != fileStream.ReadByte())
                {
                    Console.WriteLine("Error writing data.");
                    return;
                }
            }
            Console.WriteLine("The data was written to {0} " +
                "and verified.", fileStream.Name);
        }
    }
}
using namespace System;
using namespace System::IO;
int main()
{
   String^ fileName =  "Test@##@.dat";
   
   // Create random data to write to the file.
   array<Byte>^dataArray = gcnew array<Byte>(100000);
   (gcnew Random)->NextBytes( dataArray );
   FileStream^ fileStream = gcnew FileStream( fileName,FileMode::Create );
   try
   {
      
      // Write the data to the file, byte by byte.
      for ( int i = 0; i < dataArray->Length;
 i++ )
      {
         fileStream->WriteByte( dataArray[ i ] );

      }
      
      // Set the stream position to the beginning of the file.
      fileStream->Seek( 0, SeekOrigin::Begin );
      
      // Read and verify the data.
      for ( int i = 0; i < fileStream->Length;
 i++ )
      {
         if ( dataArray[ i ] != fileStream->ReadByte() )
         {
            Console::WriteLine( "Error writing data." );
            return  -1;
         }

      }
      Console::WriteLine( "The data was written to {0} "
      "and verified.", fileStream->Name );
   }
   finally
   {
      fileStream->Close();
   }

}

import System.*;
import System.IO.*;

class FStream
{   
    public static void main(String[]
 args)
    {
        final String fileName = "Test#@@#.dat";

        // Create random data to write to the file.
        ubyte dataArray[] = new ubyte[100000];
        new Random().NextBytes(dataArray);        

        FileStream fileStream = new FileStream(fileName, FileMode.Create);
        try {
            // Write the data to the file, byte by byte.
            for(int i=0;i < dataArray.length;i++)
 {
                fileStream.WriteByte(dataArray[i]);
            } 

            // Set the stream position to the beginning of the file.
            fileStream.Seek(0, SeekOrigin.Begin);

            // Read and verify the data.
            for(int i=0;i < fileStream.get_Length();i++)
 {
                if ( dataArray[i] != fileStream.ReadByte()  )
 {
                    Console.WriteLine("Error writing data.");
                    return;
                }
            } 
            Console.WriteLine("The data was written to {0} "
                + "and verified.", fileStream.get_Name());
        }
        finally {
            fileStream.Dispose();
        }        
    } //main
} //FStream
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

FileStream コンストラクタ (String, FileMode, FileAccess, FileShare)

FileStream クラス新しインスタンスを、指定したパス作成モード読み取り/書き込みアクセス許可、および共有アクセス許可使用して初期化します。

名前空間: System.IO
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Sub New ( _
    path As String, _
    mode As FileMode, _
    access As FileAccess, _
    share As FileShare _
)
Dim path As String
Dim mode As FileMode
Dim access As FileAccess
Dim share As FileShare

Dim instance As New FileStream(path,
 mode, access, share)
public FileStream (
    string path,
    FileMode mode,
    FileAccess access,
    FileShare share
)
public:
FileStream (
    String^ path, 
    FileMode mode, 
    FileAccess access, 
    FileShare share
)
public FileStream (
    String path, 
    FileMode mode, 
    FileAccess access, 
    FileShare share
)
public function FileStream (
    path : String, 
    mode : FileMode, 
    access : FileAccess, 
    share : FileShare
)

パラメータ

path

現在の FileStream オブジェクトによってカプセル化されるファイル相対パスまたは絶対パス

mode

ファイルを開く方法または作成する方法決定する FileMode 定数

access

FileStream オブジェクトファイルアクセスする方法決定する FileAccess 定数。これは、FileStream オブジェクトの CanRead プロパティと CanWrite プロパティ取得しますpathディスク ファイル指定されている場合、CanSeek は trueなります

share

プロセスによるファイル共有方法決定する FileShare 定数

例外例外
例外種類条件

ArgumentNullException

pathnull 参照 (Visual Basic では Nothing) です。

ArgumentException

path空の文字列 ("") か、空白しか含んでいないか、無効な文字1 つ以上含んでます。

または

pathファイル以外のデバイス参照しています (NTFS 環境の "con:"、"com1:"、"lpt1:" など)。

NotSupportedException

pathファイル以外のデバイス参照しています (NTFS 以外の環境の "con:"、"com1:"、"lpt1:" など)。

ArgumentException

path空の文字列 ("") か、空白しか含んでいないか、無効な文字1 つ以上含んでます。

FileNotFoundException

ファイルが見つかりません。たとえば、modeFileMode.Truncate または FileMode.Open場合に、path指定されファイル存在しません。これらのモードでは、ファイルが既に存在している必要があります

IOException

FileMode.CreateNew指定されているのに、path指定したファイルが既に存在していることなどが原因I/O エラー発生しました

または

システムWindows 98 または Windows 98 Second Edition実行しており、shareFileShare.Delete設定されています。

または

ストリーム閉じられています。

SecurityException

呼び出し元に必要なアクセス許可がありません。

DirectoryNotFoundException

割り当てられていないドライブであるなど、指定されパス無効です。

UnauthorizedAccessException

accessWrite または ReadWrite であるのに、ファイルまたはディレクトリ読み取り専用設定されているなど、指定した path対すaccess 要求オペレーティング システム許可されません。

PathTooLongException

指定したパスファイル名、またはその両方システム定義の最大長を超えてます。たとえば、Windows ベースプラットフォーム場合パス長さ248 文字未満ファイル名長さ260 文字未満である必要があります

ArgumentOutOfRangeException

mode無効な値が含まれています。

解説解説

.NET Framework では、"\\.\PHYSICALDRIVE0" など、デバイス名を指定したパス使用して物理ディスク直接アクセスすることはできません。

path パラメータにはファイル名指定できます。このファイルには、UNC 共有ファイル含まれます。

コンストラクタにはファイルへの読み取り/書き込みアクセス付与されます。ファイル共有読み取りモード開きます。そのため、FileStream オブジェクト閉じられるまで、この処理または別の処理でファイル書き込み用に開く要求失敗しますが、読み取り要求成功しますバッファ サイズは、既定サイズである 8192 バイト (8 KB) に設定されます。

メモ注意

特定のカルチャ設定文字セットコンパイルし、同じ文字異なるカルチャ設定取得すると、文字正しく解釈されない場合があり、例外スローされることもあります

その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します

使用例使用例

次のコード例Lock メソッド例の一部です。

Dim aFileStream As New FileStream(
 _
    "Test#@@#.dat", FileMode.OpenOrCreate, _
    FileAccess.ReadWrite, FileShare.ReadWrite)
using(FileStream fileStream = new FileStream(
    "Test#@@#.dat", FileMode.OpenOrCreate, 
    FileAccess.ReadWrite, FileShare.ReadWrite))
FileStream^ fileStream = gcnew FileStream( "Test#@@#.dat",FileMode::OpenOrCreate,FileAccess::ReadWrite,FileShare::ReadWrite
 );

FileStream fileStream =  new FileStream
    ("Test#@@#.dat", FileMode.OpenOrCreate, FileAccess.ReadWrite,
    FileShare.ReadWrite);
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

FileStream コンストラクタ (String, FileMode, FileAccess, FileShare, Int32, Boolean)

FileStream クラス新しインスタンスを、指定したパス作成モード読み取り/書き込みアクセス許可共有アクセス許可バッファ サイズ、および同期状態または非同期状態を使用して初期化します。

名前空間: System.IO
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Sub New ( _
    path As String, _
    mode As FileMode, _
    access As FileAccess, _
    share As FileShare, _
    bufferSize As Integer, _
    useAsync As Boolean _
)
Dim path As String
Dim mode As FileMode
Dim access As FileAccess
Dim share As FileShare
Dim bufferSize As Integer
Dim useAsync As Boolean

Dim instance As New FileStream(path,
 mode, access, share, bufferSize, useAsync)
public FileStream (
    string path,
    FileMode mode,
    FileAccess access,
    FileShare share,
    int bufferSize,
    bool useAsync
)
public:
FileStream (
    String^ path, 
    FileMode mode, 
    FileAccess access, 
    FileShare share, 
    int bufferSize, 
    bool useAsync
)
public FileStream (
    String path, 
    FileMode mode, 
    FileAccess access, 
    FileShare share, 
    int bufferSize, 
    boolean useAsync
)
public function FileStream (
    path : String, 
    mode : FileMode, 
    access : FileAccess, 
    share : FileShare, 
    bufferSize : int, 
    useAsync : boolean
)

パラメータ

path

現在の FileStream オブジェクトによってカプセル化されるファイル相対パスまたは絶対パス

mode

ファイルを開く方法または作成する方法決定する FileMode 定数

access

FileStream オブジェクトファイルアクセスする方法決定する FileAccess 定数。これは、FileStream オブジェクトの CanRead プロパティと CanWrite プロパティ取得しますpathディスク ファイル指定されている場合、CanSeek は trueなります

share

プロセスによるファイル共有方法決定する FileShare 定数

bufferSize

バッファ サイズを示す 0 より大きな正の Int32 値。bufferSize 値には 0 から 8 を設定します実際バッファ サイズは 8 バイト設定されます。

useAsync

非同期 I/O または同期 I/O のどちらを使用するかを指定します。ただし、基になるオペレーティング システム非同期 I/Oサポートしていないことがあります。したがってtrue指定しても、プラットフォームによってはハンドル同期的開かれることがあります非同期的に開いた場合、BeginRead メソッドと BeginWrite メソッドは、大量読み取りまたは書き込み時にはパフォーマンスより高くなりますが、少量読み取りまたは書き込み時にはパフォーマンスが非常に低くなることがありますアプリケーション非同期 I/O利用するように設計されている場合は、useAsync パラメータtrue設定します非同期 I/O正しく使用すると、アプリケーション10 倍ほど高速化することがあります。ただし、非同期 I/O 用にアプリケーション再設計せずに非同期 I/O使用すると、パフォーマンス10 分の 1 ほど低下することがあります

例外例外
例外種類条件

ArgumentNullException

pathnull 参照 (Visual Basic では Nothing) です。

ArgumentException

path空の文字列 ("") か、空白しか含んでいないか、無効な文字1 つ以上含んでます。

または

pathファイル以外のデバイス参照しています (NTFS 環境の "con:"、"com1:"、"lpt1:" など)。

NotSupportedException

pathファイル以外のデバイス参照しています (NTFS 以外の環境の "con:"、"com1:"、"lpt1:" など)。

ArgumentException

path空の文字列 ("") か、空白しか含んでいないか、無効な文字1 つ以上含んでます。

ArgumentOutOfRangeException

bufferSize が負の値またはゼロです。

または

modeaccess、または share無効な値が含まれています。

FileNotFoundException

ファイルが見つかりません。たとえば、modeFileMode.Truncate または FileMode.Open場合に、path指定されファイル存在しません。これらのモードでは、ファイルが既に存在している必要があります

IOException

FileMode.CreateNew指定されているのに、path指定したファイルが既に存在していることなどが原因I/O エラー発生しました

または

システムWindows 98 または Windows 98 Second Edition実行しており、shareFileShare.Delete設定されています。

または

ストリーム閉じられています。

SecurityException

呼び出し元に必要なアクセス許可がありません。

DirectoryNotFoundException

割り当てられていないドライブであるなど、指定されパス無効です。

UnauthorizedAccessException

accessWrite または ReadWrite であるのに、ファイルまたはディレクトリ読み取り専用設定されているなど、指定した path対すaccess 要求オペレーティング システム許可されません。

PathTooLongException

指定したパスファイル名、またはその両方システム定義の最大長を超えてます。たとえば、Windows ベースプラットフォーム場合パス長さ248 文字未満ファイル名長さ260 文字未満である必要があります

解説解説

.NET Framework では、"\\.\PHYSICALDRIVE0" など、デバイス名を指定したパス使用して物理ディスク直接アクセスすることはできません。

path パラメータにはファイル名指定できます。このファイルには、UNC 共有ファイル含まれます。

メモ注意

特定のカルチャ設定文字セットコンパイルし、同じ文字異なるカルチャ設定取得すると、文字正しく解釈されない場合があり、例外スローされることもあります

その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します

使用例使用例

ファイルデータ非同期的に書き込み、さらにデータ正常に書き込まれたことを確認する例を次に示しますEndReadCallback メソッドEndWriteCallback メソッドメイン スレッド情報を渡すために、State オブジェクト作成されます。

Imports System
Imports System.IO
Imports System.Threading

Class FStream

    Shared Sub Main()

        ' Create a synchronization object that gets 
        ' signaled when verification is complete.
        Dim manualEvent As New
 ManualResetEvent(False)

        ' Create random data to write to the file.
        Dim writeArray(100000) As Byte
        Dim randomGenerator As New
 Random()
        randomGenerator.NextBytes(writeArray)

        Dim fStream As New
 FileStream("Test#@@#.dat", _
            FileMode.Create, FileAccess.ReadWrite, _
            FileShare.None, 4096, True)

        ' Check that the FileStream was opened asynchronously.
        If fStream.IsAsync = True
            Console.WriteLine("fStream was opened asynchronously.")
        Else
            Console.WriteLine("fStream was not opened asynchronously.")
        End If

        ' Asynchronously write to the file.
        Dim asyncResult As IAsyncResult = fStream.BeginWrite(
 _
            writeArray, 0, writeArray.Length, _
            AddressOf EndWriteCallback , _
            New State(fStream, writeArray, manualEvent))

        ' Concurrently do other work and then wait
        ' for the data to be written and verified.
        manualEvent.WaitOne(5000, False)
    End Sub

    ' When BeginWrite is finished writing data to the file, the
    ' EndWriteCallback method is called to end the asynchronous 
    ' write operation and then read back and verify the data.
    Private Shared Sub EndWriteCallback(asyncResult
 As IAsyncResult)
        Dim tempState As State = _
            DirectCast(asyncResult.AsyncState, State)
        Dim fStream As FileStream = tempState.FStream
        fStream.EndWrite(asyncResult)

        ' Asynchronously read back the written data.
        fStream.Position = 0
        asyncResult = fStream.BeginRead( _ 
            tempState.ReadArray, 0 , tempState.ReadArray.Length, _
            AddressOf EndReadCallback, tempState)

        ' Concurrently do other work, such as 
        ' logging the write operation.
    End Sub

    ' When BeginRead is finished reading data from the file, the 
    ' EndReadCallback method is called to end the asynchronous 
    ' read operation and then verify the data.
   Private Shared Sub EndReadCallback(asyncResult
 As IAsyncResult)
        Dim tempState As State = _
            DirectCast(asyncResult.AsyncState, State)
        Dim readCount As Integer
 = _
            tempState.FStream.EndRead(asyncResult)

        Dim i As Integer
 = 0
        While(i < readCount)
            If(tempState.ReadArray(i) <> tempState.WriteArray(i))
                Console.WriteLine("Error writing data.")
                tempState.FStream.Close()
                Return
            End If
            i += 1
        End While

        Console.WriteLine("The data was written to {0} and "
 & _
            "verified.", tempState.FStream.Name)
        tempState.FStream.Close()

        ' Signal the main thread that the verification is finished.
        tempState.ManualEvent.Set()
    End Sub

    ' Maintain state information to be passed to 
    ' EndWriteCallback and EndReadCallback.
    Private Class State

        ' fStreamValue is used to read and write to the file.
        Dim fStreamValue As FileStream

        ' writeArrayValue stores data that is written to the file.
        Dim writeArrayValue As Byte()

        ' readArrayValue stores data that is read from the file.
        Dim readArrayValue As Byte()

        ' manualEvent signals the main thread 
        ' when verification is complete.
        Dim manualEventValue As ManualResetEvent
 

        Sub New(aStream As
 FileStream, anArray As Byte(), _
            manualEvent As ManualResetEvent)

            fStreamValue     = aStream
            writeArrayValue  = anArray
            manualEventValue = manualEvent
            readArrayValue   = New Byte(anArray.Length
 - 1){}
        End Sub    

            Public ReadOnly Property
 FStream() As FileStream
                Get
                    Return fStreamValue
                End Get
            End Property

            Public ReadOnly Property
 WriteArray() As Byte()
                Get
                    Return writeArrayValue
                End Get
            End Property

            Public ReadOnly Property
 ReadArray() As Byte()
                Get
                    Return readArrayValue
                End Get
            End Property

            Public ReadOnly Property
 ManualEvent() As ManualResetEvent
                Get
                    Return manualEventValue
                End Get
            End Property
    End Class 
   
End Class
using System;
using System.IO;
using System.Threading;

class FStream
{
    static void Main()
    {
        // Create a synchronization object that gets 
        // signaled when verification is complete.
        ManualResetEvent manualEvent = new ManualResetEvent(false);

        // Create random data to write to the file.
        byte[] writeArray = new byte[100000];
        new Random().NextBytes(writeArray);

        FileStream fStream = 
            new FileStream("Test#@@#.dat", FileMode.Create,
 
            FileAccess.ReadWrite, FileShare.None, 4096, true);

        // Check that the FileStream was opened asynchronously.
        Console.WriteLine("fStream was {0}opened asynchronously.",
            fStream.IsAsync ? "" : "not ");

        // Asynchronously write to the file.
        IAsyncResult asyncResult = fStream.BeginWrite(
            writeArray, 0, writeArray.Length, 
            new AsyncCallback(EndWriteCallback), 
            new State(fStream, writeArray, manualEvent));

        // Concurrently do other work and then wait 
        // for the data to be written and verified.
        manualEvent.WaitOne(5000, false);
    }

    // When BeginWrite is finished writing data to the file, the
    // EndWriteCallback method is called to end the asynchronous 
    // write operation and then read back and verify the data.
    static void EndWriteCallback(IAsyncResult
 asyncResult)
    {
        State tempState = (State)asyncResult.AsyncState;
        FileStream fStream = tempState.FStream;
        fStream.EndWrite(asyncResult);

        // Asynchronously read back the written data.
        fStream.Position = 0;
        asyncResult = fStream.BeginRead(
            tempState.ReadArray, 0 , tempState.ReadArray.Length, 
            new AsyncCallback(EndReadCallback), tempState);

        // Concurrently do other work, such as 
        // logging the write operation.
    }

    // When BeginRead is finished reading data from the file, the 
    // EndReadCallback method is called to end the asynchronous 
    // read operation and then verify the data.
    static void EndReadCallback(IAsyncResult
 asyncResult)
    {
        State tempState = (State)asyncResult.AsyncState;
        int readCount = tempState.FStream.EndRead(asyncResult);

        int i = 0;
        while(i < readCount)
        {
            if(tempState.ReadArray[i] != tempState.WriteArray[i++])
            {
                Console.WriteLine("Error writing data.");
                tempState.FStream.Close();
                return;
            }
        }
        Console.WriteLine("The data was written to {0} and verified.",
            tempState.FStream.Name);
        tempState.FStream.Close();

        // Signal the main thread that the verification is finished.
        tempState.ManualEvent.Set();
    }

    // Maintain state information to be passed to 
    // EndWriteCallback and EndReadCallback.
    class State
    {
        // fStream is used to read and write to the file.
        FileStream fStream;

        // writeArray stores data that is written to the file.
        byte[] writeArray;

        // readArray stores data that is read from the file.
        byte[] readArray;

        // manualEvent signals the main thread 
        // when verification is complete.
        ManualResetEvent manualEvent;

        public State(FileStream fStream, byte[] writeArray, 
            ManualResetEvent manualEvent)
        {
            this.fStream   = fStream;
            this.writeArray = writeArray;
            this.manualEvent = manualEvent;
            readArray = new byte[writeArray.Length];
        }

        public FileStream FStream
        { get{ return fStream; } }

        public byte[] WriteArray
        { get{ return writeArray; } }

        public byte[] ReadArray
        { get{ return readArray; } }

        public ManualResetEvent ManualEvent
        { get{ return manualEvent; } }
    }
}
using namespace System;
using namespace System::IO;
using namespace System::Threading;

// Maintain state information to be passed to 
// EndWriteCallback and EndReadCallback.
ref class State
{
private:

   // fStream is used to read and write to the file.
   FileStream^ fStream;

   // writeArray stores data that is written to the file.
   array<Byte>^writeArray;

   // readArray stores data that is read from the file.
   array<Byte>^readArray;

   // manualEvent signals the main thread 
   // when verification is complete.
   ManualResetEvent^ manualEvent;

public:
   State( FileStream^ fStream, array<Byte>^writeArray, ManualResetEvent^ manualEvent
 )
   {
      this->fStream = fStream;
      this->writeArray = writeArray;
      this->manualEvent = manualEvent;
      readArray = gcnew array<Byte>(writeArray->Length);
   }


   property FileStream^ FStream 
   {
      FileStream^ get()
      {
         return fStream;
      }

   }

   property array<Byte>^ WriteArray 
   {
      array<Byte>^ get()
      {
         return writeArray;
      }

   }

   property array<Byte>^ ReadArray 
   {
      array<Byte>^ get()
      {
         return readArray;
      }

   }

   property ManualResetEvent^ ManualEvent 
   {
      ManualResetEvent^ get()
      {
         return manualEvent;
      }

   }

};

ref class FStream
{
private:

   // When BeginRead is finished reading data from the file, the 
   // EndReadCallback method is called to end the asynchronous 
   // read operation and then verify the data.
   static void EndReadCallback( IAsyncResult^
 asyncResult )
   {
      State^ tempState = dynamic_cast<State^>(asyncResult->AsyncState);
      int readCount = tempState->FStream->EndRead( asyncResult
 );
      int i = 0;
      while ( i < readCount )
      {
         if ( tempState->ReadArray[ i ] != tempState->WriteArray[
 i++ ] )
         {
            Console::WriteLine( "Error writing data." );
            tempState->FStream->Close();
            return;
         }
      }

      Console::WriteLine( "The data was written to {0} "
      "and verified.", tempState->FStream->Name );
      tempState->FStream->Close();
      
      // Signal the main thread that the verification is finished.
      tempState->ManualEvent->Set();
   }


public:

   // When BeginWrite is finished writing data to the file, the
   // EndWriteCallback method is called to end the asynchronous 
   // write operation and then read back and verify the data.
   static void EndWriteCallback( IAsyncResult^
 asyncResult )
   {
      State^ tempState = dynamic_cast<State^>(asyncResult->AsyncState);
      FileStream^ fStream = tempState->FStream;
      fStream->EndWrite( asyncResult );
      
      // Asynchronously read back the written data.
      fStream->Position = 0;
      asyncResult = fStream->BeginRead( tempState->ReadArray, 0, tempState->ReadArray->Length,
 gcnew AsyncCallback( &FStream::EndReadCallback ), tempState );
      
      // Concurrently do other work, such as 
      // logging the write operation.
   }

};


int main()
{
   
   // Create a synchronization object that gets 
   // signaled when verification is complete.
   ManualResetEvent^ manualEvent = gcnew ManualResetEvent( false
 );
   
   // Create the data to write to the file.
   array<Byte>^writeArray = gcnew array<Byte>(100000);
   (gcnew Random)->NextBytes( writeArray );
   FileStream^ fStream = gcnew FileStream(  "Test#@@#.dat",FileMode::Create,FileAccess::ReadWrite,FileShare::None,4096,true
 );
   
   // Check that the FileStream was opened asynchronously.
   Console::WriteLine( "fStream was {0}opened asynchronously.", fStream->IsAsync
 ? (String^)"" : "not " );
   
   // Asynchronously write to the file.
   IAsyncResult^ asyncResult = fStream->BeginWrite( writeArray, 0, writeArray->Length,
 gcnew AsyncCallback( &FStream::EndWriteCallback ), gcnew State( fStream,writeArray,manualEvent
 ) );
   
   // Concurrently do other work and then wait 
   // for the data to be written and verified.
   manualEvent->WaitOne( 5000, false );
}

import System.*;
import System.IO.*;
import System.Threading.*;

class FStream
{   
    public static void main(String[]
 args)
    {
        // Create a synchronization object that gets 
        // signaled when verification is complete.
        ManualResetEvent manualEvent = new ManualResetEvent(false);

        // Create random data to write to the file.
        ubyte writeArray[] = new ubyte[100000];
        new Random().NextBytes(writeArray);

        FileStream fStream =  new FileStream("Test#@@#.dat",
 FileMode.Create,
            FileAccess.ReadWrite, FileShare.None, 4096, true);

        // Check that the FileStream was opened asynchronously.
        Console.WriteLine("fStream was {0}opened asynchronously.",
            (fStream.get_IsAsync()) ? "" : "not ");
        FStream classfStream = new FStream();

        // Asynchronously write to the file.
        IAsyncResult asyncResult = fStream.BeginWrite(writeArray, 0,
            writeArray.length, new AsyncCallback(EndWriteCallback)
,
            classfStream.new State(fStream, writeArray, manualEvent));

        // Concurrently do other work and then wait 
        // for the data to be written and verified.
        manualEvent.WaitOne(5000, false);
    } //main

    // When BeginWrite is finished writing data to the file, the
    // EndWriteCallback method is called to end the asynchronous 
    // write operation and then read back and verify the data.
    static void EndWriteCallback(IAsyncResult
 asyncResult)
    {
        State tempState = ((State)(asyncResult.get_AsyncState()));
        FileStream fStream = tempState.get_FStream();
        fStream.EndWrite(asyncResult);

        // Asynchronously read back the written data.
        fStream.set_Position(0);
        asyncResult = fStream.BeginRead(tempState.get_ReadArray(), 0,
            tempState.get_ReadArray().length , 
            new AsyncCallback(EndReadCallback), tempState);

        // Concurrently do other work, such as 
        // logging the write operation.
    } //EndWriteCallback

    // When BeginRead is finished reading data from the file, the 
    // EndReadCallback method is called to end the asynchronous 
    // read operation and then verify the data.
    static void EndReadCallback(IAsyncResult
 asyncResult)
    {
        State tempState = ((State)(asyncResult.get_AsyncState()));
        int readCount = tempState.get_FStream().EndRead(asyncResult);
        int i = 0;
        while((i < readCount)) {
            if ( tempState.get_ReadArray()[i] != 
                    tempState.get_WriteArray()[i++] ) {
                Console.WriteLine("Error writing data.");
                tempState.get_FStream().Close();
                return;
            }
        }
        Console.WriteLine("The data was written to {0} and verified.",
            tempState.get_FStream().get_Name());
        tempState.get_FStream().Close();

        // Signal the main thread that the verification is finished.
        tempState.get_ManualEvent().Set();
    } //EndReadCallback

    // Maintain state information to be passed to 
    // EndWriteCallback and EndReadCallback.
    class State
    {
        // fStream is used to read and write to the file.
        private FileStream fStream;

        // writeArray stores data that is written to the file.
        private ubyte writeArray[];

        // readArray stores data that is read from the file.
        private ubyte readArray[];

        // manualEvent signals the main thread 
        // when verification is complete.
        private ManualResetEvent manualEvent;

        public State(FileStream fStream, ubyte writeArray[],
                    ManualResetEvent manualEvent)
        {
            this.fStream = fStream;
            this.writeArray = writeArray;
            this.manualEvent = manualEvent;
            readArray = new ubyte[writeArray.length ];
        } //State
      
        /** @property 
         */
        public FileStream get_FStream()
        {
            return fStream ;
        }//get_FStream

        /** @property 
         */
        public ubyte[] get_WriteArray()
        {
            return writeArray ;
        }//get_WriteArray

        /** @property 
         */
        public ubyte[] get_ReadArray()
        {
            return readArray;
        }//get_ReadArray

        /** @property 
         */
        public ManualResetEvent get_ManualEvent()
        {
            return manualEvent;
        }//get_ManualEvent
    } //State
} //FStream
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

FileStream コンストラクタ (SafeFileHandle, FileAccess)

メモ : このコンストラクタは、.NET Framework version 2.0新しく追加されたものです。

FileStream クラス新しインスタンスを、指定した読み取り/書き込みアクセス許可使用して指定したファイル ハンドル用に初期化します。

名前空間: System.IO
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Sub New ( _
    handle As SafeFileHandle, _
    access As FileAccess _
)
Dim handle As SafeFileHandle
Dim access As FileAccess

Dim instance As New FileStream(handle,
 access)
public FileStream (
    SafeFileHandle handle,
    FileAccess access
)
public:
FileStream (
    SafeFileHandle^ handle, 
    FileAccess access
)
public FileStream (
    SafeFileHandle handle, 
    FileAccess access
)
public function FileStream (
    handle : SafeFileHandle, 
    access : FileAccess
)

パラメータ

handle

現在の FileStream オブジェクトによってカプセル化されるファイルファイル ハンドル

access

FileStream オブジェクトの CanRead プロパティと CanWrite プロパティ設定する FileAccess 定数

例外例外
例外種類条件

ArgumentException

accessFileAccessフィールドではありません。

SecurityException

呼び出し元に必要なアクセス許可がありません。

IOException

ディスク エラーなどの I/O エラー発生しました

または

ストリーム閉じられています。

UnauthorizedAccessException

accessWrite または ReadWrite であるのに、ファイル ハンドル読み取り専用設定されているなど、指定したファイル ハンドル対すaccess 要求オペレーティング システム許可されません。

解説解説

Close呼び出されると、ハンドル閉じられファイルハンドル カウントデクリメントされます

FileStream は、ハンドル排他的に制御していると見なされますFileStreamハンドル保持しているときに、読み取り書き込み、またはシーク実行すると、データ破損することがありますデータ保護するために、ハンドル使用する前に Flush呼び出しハンドル使用後Close 以外のメソッド呼び出さないようにします。

注意に関するメモ注意

特定のカルチャ設定文字セットコンパイルし、同じ文字異なるカルチャ設定取得すると、文字正しく解釈されない場合があり、例外スローされることもあります

FileShare パラメータ指定しないタイプFileStream コンストラクタに対しては、FileShare.Read既定値です。

その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します

.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

FileStream コンストラクタ (String, FileMode, FileAccess, FileShare, Int32, FileOptions)

メモ : このコンストラクタは、.NET Framework version 2.0新しく追加されたものです。

FileStream クラス新しインスタンスを、指定したパス作成モード読み取り/書き込みアクセス許可共有アクセス許可同一ファイルに対して他の FileStream が保有できるアクセスバッファ サイズ、および追加ファイル オプション使用して初期化します。

名前空間: System.IO
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Sub New ( _
    path As String, _
    mode As FileMode, _
    access As FileAccess, _
    share As FileShare, _
    bufferSize As Integer, _
    options As FileOptions _
)
Dim path As String
Dim mode As FileMode
Dim access As FileAccess
Dim share As FileShare
Dim bufferSize As Integer
Dim options As FileOptions

Dim instance As New FileStream(path,
 mode, access, share, bufferSize, options)
public FileStream (
    string path,
    FileMode mode,
    FileAccess access,
    FileShare share,
    int bufferSize,
    FileOptions options
)
public:
FileStream (
    String^ path, 
    FileMode mode, 
    FileAccess access, 
    FileShare share, 
    int bufferSize, 
    FileOptions options
)
public FileStream (
    String path, 
    FileMode mode, 
    FileAccess access, 
    FileShare share, 
    int bufferSize, 
    FileOptions options
)
public function FileStream (
    path : String, 
    mode : FileMode, 
    access : FileAccess, 
    share : FileShare, 
    bufferSize : int, 
    options : FileOptions
)

パラメータ

path

現在の FileStream オブジェクトによってカプセル化されるファイル相対パスまたは絶対パス

mode

ファイルを開く方法または作成する方法決定する FileMode 定数

access

FileStream オブジェクトファイルアクセスする方法決定する FileAccess 定数。これは、FileStream オブジェクトの CanRead プロパティと CanWrite プロパティ取得しますpathディスク ファイル指定されている場合、CanSeek は trueなります

share

プロセスによるファイル共有方法決定する FileShare 定数

bufferSize

バッファ サイズを示す 0 より大きな正の Int32 値。bufferSize 値には 0 から 8 を設定します実際バッファ サイズは 8 バイト設定されます。

options

追加ファイル オプション指定する FileOptions 値。

例外例外
例外種類条件

ArgumentNullException

pathnull 参照 (Visual Basic では Nothing) です。

ArgumentException

path空の文字列 ("") か、空白しか含んでいないか、無効な文字1 つ以上含んでます。

または

pathファイル以外のデバイス参照しています (NTFS 環境の "con:"、"com1:"、"lpt1:" など)。

NotSupportedException

pathファイル以外のデバイス参照しています (NTFS 以外の環境の "con:"、"com1:"、"lpt1:" など)。

ArgumentException

path空の文字列 ("") か、空白しか含んでいないか、無効な文字1 つ以上含んでます。

ArgumentOutOfRangeException

bufferSize が負の値またはゼロです。

または

modeaccess、または share無効な値が含まれています。

FileNotFoundException

ファイルが見つかりません。たとえば、modeFileMode.Truncate または FileMode.Open場合に、path指定されファイル存在しません。これらのモードでは、ファイルが既に存在している必要があります

IOException

FileMode.CreateNew指定されているのに、path指定したファイルが既に存在していることなどが原因I/O エラー発生しました

または

ストリーム閉じられています。

SecurityException

呼び出し元に必要なアクセス許可がありません。

DirectoryNotFoundException

割り当てられていないドライブであるなど、指定されパス無効です。

UnauthorizedAccessException

accessWrite または ReadWrite であるのに、ファイルまたはディレクトリ読み取り専用設定されているなど、指定した path対すaccess 要求オペレーティング システム許可されません。

PathTooLongException

指定したパスファイル名、またはその両方システム定義の最大長を超えてます。たとえば、Windows ベースプラットフォーム場合パス長さ248 文字未満ファイル名長さ260 文字未満である必要があります

解説解説

.NET Framework では、"\\.\PHYSICALDRIVE0" など、デバイス名を指定したパス使用して物理ディスク直接アクセスすることはできません。

fileOptions パラメータ使用すると、FileStream オブジェクトの作成時に活用できる、より高度な操作利用できます

path パラメータにはファイル名指定できます。このファイルには、UNC 共有ファイル含まれます。

メモ注意

特定のカルチャ設定文字セットコンパイルし、同じ文字異なるカルチャ設定取得すると、文字正しく解釈されない場合があり、例外スローされることもあります

その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します

使用例使用例

FileStream オブジェクト使用してファイルデータ書き込み次にデータ読み取る例を次に示します

Imports System
Imports System.IO
Imports System.Text
Imports System.Security.AccessControl



Module FileStreamExample

    Sub Main()
        Try
            ' Create a file and write data to it.
            ' Create an array of bytes.
            Dim messageByte As Byte()
 = Encoding.ASCII.GetBytes("Here is some data.")

            ' Create a file using the FileStream class.
            Dim fWrite As New
 FileStream("test.txt", FileMode.Create, FileAccess.ReadWrite,
 FileShare.None, 8, FileOptions.None)

            ' Write the number of bytes to the file.
            fWrite.WriteByte(System.Convert.ToByte(messageByte.Length))

            ' Write the bytes to the file.
            fWrite.Write(messageByte, 0, messageByte.Length)

            ' Close the stream.
            fWrite.Close()


            ' Open a file and read the number of bytes.
            Dim fRead As New
 FileStream("test.txt", FileMode.Open)

            ' The first byte is the string length.
            Dim length As Integer
 = Fix(fRead.ReadByte())

            ' Create a new byte array for the data.
            Dim readBytes(length) As Byte

            ' Read the data from the file.
            fRead.Read(readBytes, 0, readBytes.Length)

            ' Close the stream.
            fRead.Close()

            ' Display the data.
            Console.WriteLine(Encoding.ASCII.GetString(readBytes))

            Console.WriteLine("Done writing and reading data.")
        Catch e As Exception
            Console.WriteLine(e)
        End Try

        Console.ReadLine()

    End Sub
End Module

using System;
using System.IO;
using System.Text;
using System.Security.AccessControl;

namespace FileSystemExample
{
    class FileStreamExample
    {
        public static void
 Main()
        {
            try
            {
                // Create a file and write data to it.

                // Create an array of bytes.
                byte[] messageByte = Encoding.ASCII.GetBytes("Here is some data.");

                // Create a file using the FileStream class.
                FileStream fWrite = new FileStream("test.txt",
 FileMode.Create, FileAccess.ReadWrite, FileShare.None, 8, FileOptions.None);

                // Write the number of bytes to the file.
                fWrite.WriteByte((byte)messageByte.Length);

                // Write the bytes to the file.
                fWrite.Write(messageByte, 0, messageByte.Length);

                // Close the stream.
                fWrite.Close();

                
                // Open a file and read the number of bytes.

                FileStream fRead = new FileStream("test.txt",
 FileMode.Open);

                // The first byte is the string length.
                int length = (int)fRead.ReadByte();

                // Create a new byte array for the data.
                byte[] readBytes = new byte[length];

                // Read the data from the file.
                fRead.Read(readBytes, 0, readBytes.Length);

                // Close the stream.
                fRead.Close();

                // Display the data.
                Console.WriteLine(Encoding.ASCII.GetString(readBytes));

                Console.WriteLine("Done writing and reading data.");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            Console.ReadLine();
        }
    }
}

#using <System.dll>

using namespace System;
using namespace System::IO;
using namespace System::Text;
using namespace System::Security::AccessControl;

int main()
{
    try
    {
        // Create a file and write data to it.

        // Create an array of bytes.
        array<Byte>^ messageByte =
            Encoding::ASCII->GetBytes("Here is some data.");

        // Create a file using the FileStream class.
        FileStream^ fWrite = gcnew FileStream("test.txt", FileMode::Create
,
            FileAccess::ReadWrite, FileShare::None, 8, FileOptions::None);

        // Write the number of bytes to the file.
        fWrite->WriteByte((Byte)messageByte->Length);

        // Write the bytes to the file.
        fWrite->Write(messageByte, 0, messageByte->Length);

        // Close the stream.
        fWrite->Close();


        // Open a file and read the number of bytes.

        FileStream^ fRead = gcnew FileStream("test.txt", 
            FileMode::Open);

        // The first byte is the string length.
        int length = (int)fRead->ReadByte();

        // Create a new byte array for the data.
        array<Byte>^ readBytes = gcnew array<Byte>(length);

        // Read the data from the file.
        fRead->Read(readBytes, 0, readBytes->Length);

        // Close the stream.
        fRead->Close();

        // Display the data.
        Console::WriteLine(Encoding::ASCII->GetString(readBytes));

        Console::WriteLine("Done writing and reading data.");
    }
    catch (IOException^ ex)
    {
        Console::WriteLine(ex->Message);
    }
}
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

FileStream コンストラクタ (String, FileMode, FileAccess, FileShare, Int32)

FileStream クラス新しインスタンスを、指定したパス作成モード読み取り/書き込みアクセス許可共有アクセス許可、およびバッファ サイズ使用して初期化します。

名前空間: System.IO
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Sub New ( _
    path As String, _
    mode As FileMode, _
    access As FileAccess, _
    share As FileShare, _
    bufferSize As Integer _
)
Dim path As String
Dim mode As FileMode
Dim access As FileAccess
Dim share As FileShare
Dim bufferSize As Integer

Dim instance As New FileStream(path,
 mode, access, share, bufferSize)
public FileStream (
    string path,
    FileMode mode,
    FileAccess access,
    FileShare share,
    int bufferSize
)
public:
FileStream (
    String^ path, 
    FileMode mode, 
    FileAccess access, 
    FileShare share, 
    int bufferSize
)
public FileStream (
    String path, 
    FileMode mode, 
    FileAccess access, 
    FileShare share, 
    int bufferSize
)
public function FileStream (
    path : String, 
    mode : FileMode, 
    access : FileAccess, 
    share : FileShare, 
    bufferSize : int
)

パラメータ

path

現在の FileStream オブジェクトによってカプセル化されるファイル相対パスまたは絶対パス

mode

ファイルを開く方法または作成する方法決定する FileMode 定数

access

FileStream オブジェクトファイルアクセスする方法決定する FileAccess 定数。これは、FileStream オブジェクトの CanRead プロパティと CanWrite プロパティ取得しますpathディスク ファイル指定されている場合、CanSeek は trueなります

share

プロセスによるファイル共有方法決定する FileShare 定数

bufferSize

バッファ サイズを示す 0 より大きな正の Int32 値。bufferSize 値には 0 から 8 を設定します実際バッファ サイズは 8 バイト設定されます。

例外例外
例外種類条件

ArgumentNullException

pathnull 参照 (Visual Basic では Nothing) です。

ArgumentException

path空の文字列 ("") か、空白しか含んでいないか、無効な文字1 つ以上含んでます。

または

pathファイル以外のデバイス参照しています (NTFS 環境の "con:"、"com1:"、"lpt1:" など)。

NotSupportedException

pathファイル以外のデバイス参照しています (NTFS 以外の環境の "con:"、"com1:"、"lpt1:" など)。

ArgumentException

path空の文字列 ("") か、空白しか含んでいないか、無効な文字1 つ以上含んでます。

ArgumentOutOfRangeException

bufferSize が負の値またはゼロです。

または

modeaccess、または share無効な値が含まれています。

FileNotFoundException

ファイルが見つかりません。たとえば、modeFileMode.Truncate または FileMode.Open場合に、path指定されファイル存在しません。これらのモードでは、ファイルが既に存在している必要があります

IOException

FileMode.CreateNew指定されているのに、path指定したファイルが既に存在していることなどが原因I/O エラー発生しました

または

システムWindows 98 または Windows 98 Second Edition実行しており、shareFileShare.Delete設定されています。

または

ストリーム閉じられています。

SecurityException

呼び出し元に必要なアクセス許可がありません。

DirectoryNotFoundException

割り当てられていないドライブであるなど、指定されパス無効です。

UnauthorizedAccessException

accessWrite または ReadWrite であるのに、ファイルまたはディレクトリ読み取り専用設定されているなど、指定した path対すaccess 要求オペレーティング システム許可されません。

PathTooLongException

指定したパスファイル名、またはその両方システム定義の最大長を超えてます。たとえば、Windows ベースプラットフォーム場合パス長さ248 文字未満ファイル名長さ260 文字未満である必要があります

解説解説

.NET Framework では、"\\.\PHYSICALDRIVE0" など、デバイス名を指定したパス使用して物理ディスク直接アクセスすることはできません。

path パラメータにはファイル名指定できます。このファイルには、UNC 共有ファイル含まれます。

メモ注意

特定のカルチャ設定文字セットコンパイルし、同じ文字異なるカルチャ設定取得すると、文字正しく解釈されない場合があり、例外スローされることもあります

その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します

.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

FileStream コンストラクタ (IntPtr, FileAccess)

メモ : このコンストラクタは、互換性のために残されています。

FileStream クラス新しインスタンスを、指定した読み取り/書き込みアクセス許可使用して指定したファイル ハンドル用に初期化します。

名前空間: System.IO
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<ObsoleteAttribute("This constructor has been deprecated. 
 Please use new FileStream(SafeFileHandle handle, FileAccess access) instead.  http://go.microsoft.com/fwlink/?linkid=14202")>
 _
Public Sub New ( _
    handle As IntPtr, _
    access As FileAccess _
)
[ObsoleteAttribute("This constructor has been deprecated.  Please use new
 FileStream(SafeFileHandle handle, FileAccess access) instead.  http://go.microsoft.com/fwlink/?linkid=14202")]
 
public FileStream (
    IntPtr handle,
    FileAccess access
)
[ObsoleteAttribute(L"This constructor has been deprecated.  Please use new
 FileStream(SafeFileHandle handle, FileAccess access) instead.  http://go.microsoft.com/fwlink/?linkid=14202")]
 
public:
FileStream (
    IntPtr handle, 
    FileAccess access
)
/** @attribute ObsoleteAttribute("This constructor has been deprecated.  Please
 use new FileStream(SafeFileHandle handle, FileAccess access)
 instead.  http://go.microsoft.com/fwlink/?linkid=14202") */ 
public FileStream (
    IntPtr handle, 
    FileAccess access
)
ObsoleteAttribute("This constructor has been deprecated.  Please use new
 FileStream(SafeFileHandle handle, FileAccess access) instead.  http://go.microsoft.com/fwlink/?linkid=14202")
 
public function FileStream (
    handle : IntPtr, 
    access : FileAccess
)

パラメータ

handle
access
例外例外
例外種類条件

ArgumentException

accessFileAccessフィールドではありません。

SecurityException

呼び出し元に必要なアクセス許可がありません。

IOException

ディスク エラーなどの I/O エラー発生しました

または

ストリーム閉じられています。

UnauthorizedAccessException

accessWrite または ReadWrite であるのに、ファイル ハンドル読み取り専用設定されているなど、指定したファイル ハンドル対すaccess 要求オペレーティング システム許可されません。

解説解説

Close呼び出されると、ハンドル閉じられファイルハンドル カウントデクリメントされます

FileStream は、ハンドル排他的に制御していると見なされますFileStreamハンドル保持しているときに、読み取り書き込み、またはシーク実行すると、データ破損することがありますデータ保護するために、ハンドル使用する前に Flush呼び出しハンドル使用後Close 以外のメソッド呼び出さないようにします。

注意に関するメモ注意

特定のカルチャ設定文字セットコンパイルし、同じ文字異なるカルチャ設定取得すると、文字正しく解釈されない場合があり、例外スローされることもあります

FileShare パラメータ指定しないタイプFileStream コンストラクタに対しては、FileShare.Read既定値です。

その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します

.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

FileStream プロパティ


FileStream メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド参照)
  名前 説明
パブリック メソッド BeginRead オーバーライドされます非同期読み取り開始します
パブリック メソッド BeginWrite オーバーライドされます非同期書き込み開始します
パブリック メソッド Close  現在のストリーム閉じ現在のストリーム関連付けられているすべてのリソース (ソケットファイル ハンドルなど) を解放します。 ( Stream から継承されます。)
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信使用するプロキシ生成必要な情報をすべて格納しているオブジェクト作成します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド Dispose オーバーロードされます。  
パブリック メソッド EndRead オーバーライドされます保留中の非同期読み取り完了するまで待機します。
パブリック メソッド EndWrite オーバーライドされます非同期書き込み終了しI/O 操作完了するまでブロックします
パブリック メソッド Equals  オーバーロードされます2 つObject インスタンス等しかどうか判断します。 ( Object から継承されます。)
パブリック メソッド Flush オーバーライドされますストリーム対応するすべてのバッファクリアし、バッファ内のデータを基になるデバイス書き込みます
パブリック メソッド GetAccessControl 現在の FileStream オブジェクトが示すファイルアクセス制御リスト (ACL: Access Control List) エントリをカプセル化する FileSecurity オブジェクト取得します
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用適してます。 ( Object から継承されます。)
パブリック メソッド GetLifetimeService  対象インスタンス有効期間ポリシー制御する現在の有効期間サービス オブジェクト取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド GetType  現在のインスタンスType取得します。 ( Object から継承されます。)
パブリック メソッド InitializeLifetimeService  対象インスタンス有効期間ポリシー制御する有効期間サービス オブジェクト取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド Lock 読み取りアクセス許可している間に他のプロセスによって FileStream変更されるのを防ぎます
パブリック メソッド Read オーバーライドされますストリームからバイトブロック読み取り、そのデータ特定のバッファ書き込みます
パブリック メソッド ReadByte オーバーライドされますファイルかバイト読み取り読み取り位置1 バイト進めます
パブリック メソッド ReferenceEquals  指定した複数Object インスタンス同一かどうか判断します。 ( Object から継承されます。)
パブリック メソッド Seek オーバーライドされますストリーム現在位置特定の値設定します
パブリック メソッド SetAccessControl FileSecurity オブジェクトが示すアクセス制御リスト (ACL) エントリを、現在の FileStream オブジェクトが示すファイル適用します。
パブリック メソッド SetLength オーバーライドされますストリーム長を特定の値設定します
パブリック メソッド Synchronized  指定した Stream オブジェクトラップするスレッド セーフな (同期された) ラッパー作成します。 ( Stream から継承されます。)
パブリック メソッド ToString  現在の Object を表す String返します。 ( Object から継承されます。)
パブリック メソッド Unlock 他のプロセスにより以前ロックされファイル全部または一部へのアクセス許可します
パブリック メソッド Write オーバーライドされますバッファデータ使用してストリームバイトブロック書き込みます
パブリック メソッド WriteByte オーバーライドされますファイル ストリーム現在位置バイト書き込みます
プロテクト メソッドプロテクト メソッド
参照参照

FileStream メンバ

同期および非同期読み取り操作と書き込み操作サポートするファイル用の Stream公開します

FileStream データ型公開されるメンバを以下の表に示します


パブリック コンストラクタパブリック コンストラクタ
パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
( プロテクト メソッド参照)
  名前 説明
パブリック メソッド BeginRead オーバーライドされます非同期読み取り開始します
パブリック メソッド BeginWrite オーバーライドされます非同期書き込み開始します
パブリック メソッド Close  現在のストリーム閉じ現在のストリーム関連付けられているすべてのリソース (ソケットファイル ハンドルなど) を解放します。 (Stream から継承されます。)
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信使用するプロキシ生成必要な情報をすべて格納しているオブジェクト作成します。 (MarshalByRefObject から継承されます。)
パブリック メソッド Dispose オーバーロードされます。  
パブリック メソッド EndRead オーバーライドされます保留中の非同期読み取り完了するまで待機します。
パブリック メソッド EndWrite オーバーライドされます非同期書き込み終了しI/O 操作完了するまでブロックします
パブリック メソッド Equals  オーバーロードされます2 つObject インスタンス等しかどうか判断します。 (Object から継承されます。)
パブリック メソッド Flush オーバーライドされますストリーム対応するすべてのバッファクリアし、バッファ内のデータを基になるデバイス書き込みます
パブリック メソッド GetAccessControl 現在の FileStream オブジェクトが示すファイルアクセス制御リスト (ACL: Access Control List) エントリをカプセル化する FileSecurity オブジェクト取得します
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用適してます。 (Object から継承されます。)
パブリック メソッド GetLifetimeService  対象インスタンス有効期間ポリシー制御する現在の有効期間サービス オブジェクト取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド GetType  現在のインスタンスType取得します。 (Object から継承されます。)
パブリック メソッド InitializeLifetimeService  対象インスタンス有効期間ポリシー制御する有効期間サービス オブジェクト取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド Lock 読み取りアクセス許可している間に他のプロセスによって FileStream変更されるのを防ぎます
パブリック メソッド Read オーバーライドされますストリームからバイトブロック読み取り、そのデータ特定のバッファ書き込みます
パブリック メソッド ReadByte オーバーライドされますファイルかバイト読み取り読み取り位置1 バイト進めます
パブリック メソッド ReferenceEquals  指定した複数Object インスタンス同一かどうか判断します。 (Object から継承されます。)
パブリック メソッド Seek オーバーライドされますストリーム現在位置特定の値設定します
パブリック メソッド SetAccessControl FileSecurity オブジェクトが示すアクセス制御リスト (ACL) エントリを、現在の FileStream オブジェクトが示すファイル適用します。
パブリック メソッド SetLength オーバーライドされますストリーム長を特定の値設定します
パブリック メソッド Synchronized  指定した Stream オブジェクトラップするスレッド セーフな (同期された) ラッパー作成します。 (Stream から継承されます。)
パブリック メソッド ToString  現在の Object を表す String返します。 (Object から継承されます。)
パブリック メソッド Unlock 他のプロセスにより以前ロックされファイル全部または一部へのアクセス許可します
パブリック メソッド Write オーバーライドされますバッファデータ使用してストリームバイトブロック書き込みます
パブリック メソッド WriteByte オーバーライドされますファイル ストリーム現在位置バイト書き込みます
プロテクト メソッドプロテクト メソッド
参照参照



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「FileStream」の関連用語

FileStreamのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



FileStreamのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS