次の方法で共有


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

path が null 参照 (Visual Basic では Nothing) です。

SecurityException

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

FileNotFoundException

ファイルが見つかりません。たとえば、mode が FileMode.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) に設定されます。

注意

path は、ディスクに格納されているファイルである必要はありません。ストリーム経由でアクセスできるシステム上の任意の個所を指定できます。たとえば、システムによっては、このクラスで物理デバイスにアクセスできることもあります。

CanSeek は、ファイルをカプセル化するすべての FileStream オブジェクトで true です。path がシークをサポートしないデバイスを示している場合、結果として得られる FileStreamCanSeek プロパティは false です。詳細については、CanSeek のトピックを参照してください。

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

ヒント

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

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

実行するタスク

参考例があるトピック

テキスト ファイルを作成する。

方法 : ファイルにテキストを書き込む

テキスト ファイルに書き込む。

方法 : ファイルにテキストを書き込む

テキスト ファイルから読み取る。

方法 : ファイルからテキストを読み取る

テキストをファイルに追加する。

方法 : ログ ファイルを開いて情報を追加する

File.AppendText

FileInfo.AppendText

ファイルの名前を変更、またはファイルを移動する。

File.Move

FileInfo.MoveTo

ファイルを削除する。

File.Delete

FileInfo.Delete

ファイルをコピーする。

File.Copy

FileInfo.CopyTo

ファイルのサイズを取得する。

FileInfo.Length

ファイルの属性を取得する。

File.GetAttributes

ファイルの属性を設定する。

File.SetAttributes

ファイルが存在するかどうかを判別する。

File.Exists

バイナリ ファイルから読み取る。

方法 : 新しく作成されたデータ ファイルに対して読み書きする

バイナリ ファイルに書き込む。

方法 : 新しく作成されたデータ ファイルに対して読み書きする

ファイルの拡張子を取得する。

Path.GetExtension

ファイルの絶対パスを取得する。

Path.GetFullPath

パスからファイル名と拡張子を取得する。

Path.GetFileName

ファイルの拡張子を変更する。

Path.ChangeExtension

使用例

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

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 のセキュリティ

プラットフォーム

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。

バージョン情報

.NET Framework

サポート対象 : 2.0、1.1、1.0

.NET Compact Framework

サポート対象 : 2.0、1.0

参照

関連項目

FileStream クラス
FileStream メンバ
System.IO 名前空間
InvalidPathChars

その他の技術情報

ファイルおよびストリーム入出力
方法 : ファイルからテキストを読み取る
方法 : ファイルにテキストを書き込む