File.Open File.Open File.Open File.Open Method

定義

指定したパスの FileStream を開きます。Opens a FileStream on the specified path.

オーバーロード

Open(String, FileMode) Open(String, FileMode) Open(String, FileMode) Open(String, FileMode)

指定したパスの FileStream を、共有なしの読み取り/書き込みアクセスで開きます。Opens a FileStream on the specified path with read/write access with no sharing.

Open(String, FileMode, FileAccess) Open(String, FileMode, FileAccess) Open(String, FileMode, FileAccess) Open(String, FileMode, FileAccess)

指定したモードとアクセスを使用し、共有なしで、指定したパスの FileStream を開きます。Opens a FileStream on the specified path, with the specified mode and access with no sharing.

Open(String, FileMode, FileAccess, FileShare) Open(String, FileMode, FileAccess, FileShare) Open(String, FileMode, FileAccess, FileShare) Open(String, FileMode, FileAccess, FileShare)

読み取り、書き込み、または読み取り/書き込みアクセスを持つ指定モードと指定した共有オプションで、指定したパスの FileStream を開きます。Opens a FileStream on the specified path, having the specified mode with read, write, or read/write access and the specified sharing option.

Open(String, FileMode) Open(String, FileMode) Open(String, FileMode) Open(String, FileMode)

指定したパスの FileStream を、共有なしの読み取り/書き込みアクセスで開きます。Opens a FileStream on the specified path with read/write access with no sharing.

public:
 static System::IO::FileStream ^ Open(System::String ^ path, System::IO::FileMode mode);
public static System.IO.FileStream Open (string path, System.IO.FileMode mode);
static member Open : string * System.IO.FileMode -> System.IO.FileStream
Public Shared Function Open (path As String, mode As FileMode) As FileStream

パラメーター

path
String String String String

開くファイル。The file to open.

mode
FileMode FileMode FileMode FileMode

ファイルが存在しない場合にファイルを作成するかどうかを指定し、既存のファイルの内容を保持するか上書きするかを決定する FileMode 値。A FileMode value that specifies whether a file is created if one does not exist, and determines whether the contents of existing files are retained or overwritten.

戻り値

共有モードではなく読み取り/書き込みアクセスで、指定したモードとパスで開いた FileStreamA FileStream opened in the specified mode and path, with read/write access and not shared.

例外

path は長さ 0 の文字列で、空白のみで構成されるか、または InvalidPathChars で定義される 1 つ以上の正しくない文字を含んでいます。path is a zero-length string, contains only white space, or contains one or more invalid characters as defined by InvalidPathChars.

指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。The specified path, file name, or both exceed the system-defined maximum length.

指定されたパスが無効です (たとえば、マップされていないドライブにあるなど)。The specified path is invalid, (for example, it is on an unmapped drive).

ファイルを開くときに、I/O エラーが発生しました。An I/O error occurred while opening the file.

path が読み取り専用のファイルを指定しました。path specified a file that is read-only.

- または --or- この操作は、現在のプラットフォームではサポートされていません。This operation is not supported on the current platform.

- または --or- path がディレクトリを指定しました。path specified a directory.

または-or- 呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

- または --or- modeCreate であり、指定されたファイルは隠しファイルです。mode is Create and the specified file is a hidden file.

mode により正しくない値が指定されました。mode specified an invalid value.

path で指定されたファイルが見つかりませんでした。The file specified in path was not found.

path の形式が正しくありません。path is in an invalid format.

次のコード例では、一時ファイルを作成し、そのファイルにテキストを書き込みます。The following code example creates a temporary file and writes some text to it. この例では、T:System.IO.FileMode.Open を使用してファイルを開きます。つまり、ファイルがまだ存在しない場合は作成されません。The example then opens the file, using T:System.IO.FileMode.Open; that is, if the file did not already exist, it would not be created.

using namespace System;
using namespace System::IO;
using namespace System::Text;

int main()
{
   // Create a temporary file, and put some data into it.
   String^ path = Path::GetTempFileName();
   FileStream^ fs = File::Open( path, FileMode::Open, FileAccess::Write, FileShare::None );
   try
   {
      array<Byte>^info = (gcnew UTF8Encoding( true ))->GetBytes( "This is some text in the file." );
      
      // Add some information to the file.
      fs->Write( info, 0, info->Length );
   }
   finally
   {
      if ( fs )
            delete (IDisposable^)fs;
   }

   // Open the stream and read it back.
   fs = File::Open( path, FileMode::Open );
   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;
   }
}
using System;
using System.IO;
using System.Text;

class Test 
{
    public static void Main() 
    {
        // Create a temporary file, and put some data into it.
        string path = Path.GetTempFileName();
        using (FileStream fs = File.Open(path, FileMode.Open, FileAccess.Write, FileShare.None)) 
        {
            Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
            // Add some information to the file.
            fs.Write(info, 0, info.Length);
        }
        

        // Open the stream and read it back.
        using (FileStream fs = File.Open(path, FileMode.Open)) 
        {
            byte[] b = new byte[1024];
            UTF8Encoding temp = new UTF8Encoding(true);

            while (fs.Read(b,0,b.Length) > 0) 
            {
                Console.WriteLine(temp.GetString(b));
            }
        }
    }
}
Imports System
Imports System.IO
Imports System.Text

Public Class Test
  Public Shared Sub Main()
  
    ' Create a temporary file, and put some data into it. 
    Dim path1 As String = Path.GetTempFileName()
    Using fs As FileStream = File.Open(path1, FileMode.Open, FileAccess.Write, FileShare.None)
      Dim info As Byte() = New UTF8Encoding(True).GetBytes("This is some text in the file.")
      ' Add some information to the file.
      fs.Write(info, 0, info.Length)
    End Using

    ' Open the stream and read it back. 
    Using fs As FileStream = File.Open(path1, FileMode.Open)
      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
    End Using

  End Sub
End Class

注釈

パラメーター pathで相対パスまたは絶対パス情報を指定できます。The path parameter is permitted to specify relative or absolute path information. 相対パス情報は、現在の作業ディレクトリを基準として解釈されます。Relative path information is interpreted as relative to the current working directory. 現在の作業ディレクトリを取得するにGetCurrentDirectoryは、「」を参照してください。To obtain the current working directory, see GetCurrentDirectory.

共通 I/O タスクの一覧は、 共通 I/O タスク を参照してください。For a list of common I/O tasks, see Common I/O Tasks.

セキュリティ

FileIOPermission
指定したファイルの読み取りと書き込みを行います。for reading from and writing to the specified file. 関連付けられReadた列挙型:、WriteAssociated enumerations: Read, Write

こちらもご覧ください

Open(String, FileMode, FileAccess) Open(String, FileMode, FileAccess) Open(String, FileMode, FileAccess) Open(String, FileMode, FileAccess)

指定したモードとアクセスを使用し、共有なしで、指定したパスの FileStream を開きます。Opens a FileStream on the specified path, with the specified mode and access with no sharing.

public:
 static System::IO::FileStream ^ Open(System::String ^ path, System::IO::FileMode mode, System::IO::FileAccess access);
public static System.IO.FileStream Open (string path, System.IO.FileMode mode, System.IO.FileAccess access);
static member Open : string * System.IO.FileMode * System.IO.FileAccess -> System.IO.FileStream
Public Shared Function Open (path As String, mode As FileMode, access As FileAccess) As FileStream

パラメーター

path
String String String String

開くファイル。The file to open.

mode
FileMode FileMode FileMode FileMode

ファイルが存在しない場合にファイルを作成するかどうかを指定し、既存のファイルの内容を保持するか上書きするかを決定する FileMode 値。A FileMode value that specifies whether a file is created if one does not exist, and determines whether the contents of existing files are retained or overwritten.

access
FileAccess FileAccess FileAccess FileAccess

ファイルで実行できる操作を指定する FileAccess 値。A FileAccess value that specifies the operations that can be performed on the file.

戻り値

指定されたモードとアクセスで、指定されたファイルへのアクセスを提供する非共有 FileStreamAn unshared FileStream that provides access to the specified file, with the specified mode and access.

例外

path は長さ 0 の文字列で、空白のみで構成されるか、または InvalidPathChars で定義される 1 つ以上の正しくない文字を含んでいます。path is a zero-length string, contains only white space, or contains one or more invalid characters as defined by InvalidPathChars.

- または --or- access には Read が指定され、 mode には CreateCreateNewTruncate、または Appendが指定されました。access specified Read and mode specified Create, CreateNew, Truncate, or Append.

指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。The specified path, file name, or both exceed the system-defined maximum length.

指定されたパスが無効です (たとえば、マップされていないドライブにあるなど)。The specified path is invalid, (for example, it is on an unmapped drive).

ファイルを開くときに、I/O エラーが発生しました。An I/O error occurred while opening the file.

path に読み取り専用ファイルが指定されましたが、 accessReadではありません。path specified a file that is read-only and access is not Read.

または-or- path がディレクトリを指定しました。path specified a directory.

- または --or- 呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

または-or- modeCreate ですが、指定されたファイルは隠しファイルです。mode is Create and the specified file is a hidden file.

mode または access に正しくない値が指定されました。mode or access specified an invalid value.

path で指定されたファイルが見つかりませんでした。The file specified in path was not found.

path の形式が正しくありません。path is in an invalid format.

次の例では、読み取り専用アクセスでファイルを開きます。The following example opens a file with read-only access.


using namespace System;
using namespace System::IO;
using namespace System::Text;

int main()
{
    // This sample assumes that you have a folder named "c:\temp" on your computer.
    String^ filePath = "c:\\temp\\MyTest.txt";
    // Delete the file if it exists.
    if (File::Exists( filePath ))
    {
        File::Delete( filePath );
    }
    // Create the file.
    FileStream^ fs = File::Create( filePath );
    try
    {
        array<Byte>^ info = ( gcnew UTF8Encoding( true ))->GetBytes( "This is some text in the file." );
        
        // Add some information to the file.
        fs->Write( info, 0, info->Length );
    }
    finally
    {
        if ( fs )
            delete (IDisposable^)fs;
    }

    // Open the stream and read it back.
    fs = File::Open( filePath, FileMode::Open, FileAccess::Read );
    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 ) );
        }
        try
        {
            // Try to write to the file.
            fs->Write( b, 0, b->Length );
        }
        catch ( Exception^ e ) 
        {
            Console::WriteLine( "Writing was disallowed, as expected: {0}", e->ToString() );
        }
    }
    finally
    {
        if ( fs )
            delete (IDisposable^)fs;
    }
}
using System;
using System.IO;
using System.Text;

class Test 
{
    public static void Main() 
    {
        // This sample assumes that you have a folder named "c:\temp" on your computer.
        string filePath = @"c:\temp\MyTest.txt";

        // Delete the file if it exists.
        if (File.Exists(filePath)) 
        {
            File.Delete(filePath);
        }
        
        // Create the file.
        using (FileStream fs = File.Create(filePath)) 
        {
            Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
            // Add some information to the file.
            fs.Write(info, 0, info.Length);
        }

        // Open the stream and read it back.
        using (FileStream fs = File.Open(filePath, FileMode.Open, FileAccess.Read)) 
        {
            byte[] b = new byte[1024];
            UTF8Encoding temp = new UTF8Encoding(true);

            while (fs.Read(b,0,b.Length) > 0) 
            {
                Console.WriteLine(temp.GetString(b));
            }

            try 
            {
                // Try to write to the file.
                fs.Write(b,0,b.Length);
            } 
            catch (Exception e) 
            {
                Console.WriteLine("Writing was disallowed, as expected: {0}", e.ToString());
            }
        }
    }
}
Imports System
Imports System.IO
Imports System.Text

Public Class Test
  Public Shared Sub Main()
    ' This sample assumes that you have a folder named "c:\temp" on your computer. 
    Dim filePath As String = "c:\temp\MyTest.txt"

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

    ' Create the file.
    Using fs As FileStream = File.Create(filePath)
      Dim info As Byte() = New UTF8Encoding(True).GetBytes("This is some text in the file.")

      ' Add some information to the file.
      fs.Write(info, 0, info.Length)
    End Using

    ' Open the stream and read it back.
    Using fs As FileStream = File.Open(filePath, FileMode.Open, FileAccess.Read)
      Dim b(1024) As Byte
      Dim temp As UTF8Encoding = New UTF8Encoding(True)

      ' Display the information on the console. 
      Do While fs.Read(b, 0, b.Length) > 0
        Console.WriteLine(temp.GetString(b))
      Loop

      Try
        ' Try to write to the file
        fs.Write(b, 0, b.Length)
      Catch e As Exception
        Console.WriteLine("Writing was disallowed, as expected: " & e.ToString())
      End Try

    End Using

  End Sub
End Class

注釈

パラメーター pathで相対パスまたは絶対パス情報を指定できます。The path parameter is permitted to specify relative or absolute path information. 相対パス情報は、現在の作業ディレクトリを基準として解釈されます。Relative path information is interpreted as relative to the current working directory. 現在の作業ディレクトリを取得するにGetCurrentDirectoryは、「」を参照してください。To obtain the current working directory, see GetCurrentDirectory.

セキュリティ

FileIOPermission
指定したファイルの読み取りと書き込みを行います。for reading from and writing to the specified file. 関連付けられReadた列挙型:、WriteAssociated enumerations: Read, Write

こちらもご覧ください

Open(String, FileMode, FileAccess, FileShare) Open(String, FileMode, FileAccess, FileShare) Open(String, FileMode, FileAccess, FileShare) Open(String, FileMode, FileAccess, FileShare)

読み取り、書き込み、または読み取り/書き込みアクセスを持つ指定モードと指定した共有オプションで、指定したパスの FileStream を開きます。Opens a FileStream on the specified path, having the specified mode with read, write, or read/write access and the specified sharing option.

public:
 static System::IO::FileStream ^ Open(System::String ^ path, System::IO::FileMode mode, System::IO::FileAccess access, System::IO::FileShare share);
public static System.IO.FileStream Open (string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share);
static member Open : string * System.IO.FileMode * System.IO.FileAccess * System.IO.FileShare -> System.IO.FileStream
Public Shared Function Open (path As String, mode As FileMode, access As FileAccess, share As FileShare) As FileStream

パラメーター

path
String String String String

開くファイル。The file to open.

mode
FileMode FileMode FileMode FileMode

ファイルが存在しない場合にファイルを作成するかどうかを指定し、既存のファイルの内容を保持するか上書きするかを決定する FileMode 値。A FileMode value that specifies whether a file is created if one does not exist, and determines whether the contents of existing files are retained or overwritten.

access
FileAccess FileAccess FileAccess FileAccess

ファイルで実行できる操作を指定する FileAccess 値。A FileAccess value that specifies the operations that can be performed on the file.

share
FileShare FileShare FileShare FileShare

他のスレッドがファイルに対して持つアクセス タイプを指定する FileShare 値。A FileShare value specifying the type of access other threads have to the file.

戻り値

読み取り、書き込み、または読み取り/書き込みアクセスを持つ指定モードと指定した共有オプションで、指定したパスの FileStreamA FileStream on the specified path, having the specified mode with read, write, or read/write access and the specified sharing option.

例外

path は長さ 0 の文字列で、空白のみで構成されるか、または InvalidPathChars で定義される 1 つ以上の正しくない文字を含んでいます。path is a zero-length string, contains only white space, or contains one or more invalid characters as defined by InvalidPathChars.

- または --or- access には Read が指定され、 mode には CreateCreateNewTruncate、または Appendが指定されました。access specified Read and mode specified Create, CreateNew, Truncate, or Append.

指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。The specified path, file name, or both exceed the system-defined maximum length.

指定されたパスが無効です (たとえば、マップされていないドライブにあるなど)。The specified path is invalid, (for example, it is on an unmapped drive).

ファイルを開くときに、I/O エラーが発生しました。An I/O error occurred while opening the file.

path に読み取り専用ファイルが指定されましたが、 accessReadではありません。path specified a file that is read-only and access is not Read.

- または --or- path がディレクトリを指定しました。path specified a directory.

または-or- 呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

- または --or- modeCreate ですが、指定されたファイルは隠しファイルです。mode is Create and the specified file is a hidden file.

modeaccess、または share に正しくない値が指定されました。mode, access, or share specified an invalid value.

path で指定されたファイルが見つかりませんでした。The file specified in path was not found.

path の形式が正しくありません。path is in an invalid format.

次の例では、読み取り専用アクセスを使用し、ファイル共有を許可しないファイルを開きます。The following example opens a file with read-only access and with file sharing disallowed.

using namespace System;
using namespace System::IO;
using namespace System::Text;

int main()
{
   String^ path = "c:\\temp\\MyTest.txt";
   
   // Create the file if it does not exist.
   if (  !File::Exists( path ) )
   {
      // Create the file.
      FileStream^ fs = File::Create( path );
      try
      {
         array<Byte>^info = (gcnew UTF8Encoding( true ))->GetBytes( "This is some text in the file." );
         
         // Add some information to the file.
         fs->Write( info, 0, info->Length );
      }
      finally
      {
         if ( fs )
                  delete (IDisposable^)fs;
      }
   }
   
   // Open the stream and read it back.
   FileStream^ fs = File::Open( path, FileMode::Open, FileAccess::Read, FileShare::None );
   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 ) );
      }
      try
      {
         // Try to get another handle to the same file.
         FileStream^ fs2 = File::Open( path, FileMode::Open );
         try
         {
            // Do some task here.
         }
         finally
         {
            if ( fs2 )
                        delete (IDisposable^)fs2;
         }
      }
      catch ( Exception^ e ) 
      {
         Console::Write( "Opening the file twice is disallowed." );
         Console::WriteLine( ", as expected: {0}", e );
      }
   }
   finally
   {
      if ( fs )
            delete (IDisposable^)fs;
   }
}
using System;
using System.IO;
using System.Text;

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

        // Create the file if it does not exist.
        if (!File.Exists(path)) 
        {
            // Create the file.
            using (FileStream fs = File.Create(path)) 
            {
                Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");

                // Add some information to the file.
                fs.Write(info, 0, info.Length);
            }
        }

        // Open the stream and read it back.
        using (FileStream fs = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.None)) 
        {
            byte[] b = new byte[1024];
            UTF8Encoding temp = new UTF8Encoding(true);

            while (fs.Read(b,0,b.Length) > 0) 
            {
                Console.WriteLine(temp.GetString(b));
            }

            try 
            {
                // Try to get another handle to the same file.
                using (FileStream fs2 = File.Open(path, FileMode.Open)) 
                {
                    // Do some task here.
                }
            } 
            catch (Exception e) 
            {
                Console.Write("Opening the file twice is disallowed.");
                Console.WriteLine(", as expected: {0}", e.ToString());
            }
        }
    }
}
Imports System
Imports System.IO
Imports System.Text

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

    ' Create the file if it does not exist. 
    If Not File.Exists(path) Then
      ' Create the file.
      Using fs As FileStream = File.Create(path)
        Dim info As Byte() = New UTF8Encoding(True).GetBytes("This is some text in the file.")

        ' Add some information to the file.
        fs.Write(info, 0, info.Length)
      End Using
    End If

    ' Open the stream and read it back.
    Using fs As FileStream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.None)
      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

      Try
        ' Try to get another handle to the same file. 
        Using fs2 As FileStream = File.Open(path, FileMode.Open)
          ' Do some task here.
        End Using
      Catch e As Exception
        Console.Write("Opening the file twice is disallowed.")
        Console.WriteLine(", as expected: {0}", e.ToString())
      End Try

    End Using

  End Sub
End Class

注釈

パラメーター pathで相対パスまたは絶対パス情報を指定できます。The path parameter is permitted to specify relative or absolute path information. 相対パス情報は、現在の作業ディレクトリを基準として解釈されます。Relative path information is interpreted as relative to the current working directory. 現在の作業ディレクトリを取得するにGetCurrentDirectoryは、「」を参照してください。To obtain the current working directory, see GetCurrentDirectory.

共通 I/O タスクの一覧は、 共通 I/O タスク を参照してください。For a list of common I/O tasks, see Common I/O Tasks.

セキュリティ

FileIOPermission
指定したファイルの読み取りと書き込みを行います。for reading from and writing to the specified file. 関連付けられReadた列挙型:、WriteAssociated enumerations: Read, Write

こちらもご覧ください

適用対象