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.

Возвраты

Поток FileStream, открытый в указанном режиме и по указанному пути с доступом для чтения и записи и без предоставления общего доступа.A FileStream opened in the specified mode and path, with read/write access and not shared.

Исключения

path представляет собой строку нулевой длины, содержащую только пробелы или один или несколько недопустимых символов, заданных методом InvalidPathChars.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).

При открытии файла произошла ошибка ввода-вывода.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- mode имеет значение Create, а указанный файл является скрытым.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.

Список задач ввода-вывода, см. в разделе распространенные задачи ввода-вывода.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.

Возвраты

Объект с монопольным доступом FileStream, обеспечивающий доступ к указанному файлу с заданным режимом и доступом.An unshared FileStream that provides access to the specified file, with the specified mode and access.

Исключения

path представляет собой строку нулевой длины, содержащую только пробелы или один или несколько недопустимых символов, заданных методом InvalidPathChars.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 указывает Create, CreateNew, Truncate или 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).

При открытии файла произошла ошибка ввода-вывода.An I/O error occurred while opening the file.

path указывает файл, доступный только для чтения, а параметр access не равен Read.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- mode имеет значение Create, а указанный файл является скрытым.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.

Возвраты

Поток FileStream по указанному пути с указанным режимом доступа для чтения, записи или чтения и записи и с указанным параметром совместного доступа.A FileStream on the specified path, having the specified mode with read, write, or read/write access and the specified sharing option.

Исключения

path представляет собой строку нулевой длины, содержащую только пробелы или один или несколько недопустимых символов, заданных методом InvalidPathChars.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 указывает Create, CreateNew, Truncate или 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).

При открытии файла произошла ошибка ввода-вывода.An I/O error occurred while opening the file.

path указывает файл, доступный только для чтения, а параметр access не равен Read.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- mode имеет значение Create, а указанный файл является скрытым.mode is Create and the specified file is a hidden file.

mode, access или 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.

Список задач ввода-вывода, см. в разделе распространенные задачи ввода-вывода.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

Дополнительно

Применяется к