FileStream Construtores

Definição

Inicializa uma nova instância da FileStream classe.

Sobrecargas

Name Description
FileStream(SafeFileHandle, FileAccess)

Inicializa uma nova instância da FileStream classe para o handle de ficheiro especificado, com a permissão de leitura/escrita especificada.

FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity)

Inicializa uma nova instância da FileStream classe com o caminho especificado, modo de criação, direitos de acesso e permissões de partilha, tamanho do buffer, opções adicionais de ficheiros, controlo de acesso e segurança de auditoria.

FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions)

Inicializa uma nova instância da FileStream classe com o caminho especificado, modo de criação, direitos de acesso e permissão de partilha, tamanho do buffer e opções adicionais de ficheiro.

FileStream(String, FileMode, FileAccess, FileShare, Int32, FileOptions)

Inicializa uma nova instância da FileStream classe com o caminho especificado, modo de criação, permissão de leitura/escrita e partilha, o acesso a outros FileStreams ao mesmo ficheiro, o tamanho do buffer e opções adicionais de ficheiro.

FileStream(String, FileMode, FileAccess, FileShare, Int32)

Inicializa uma nova instância da FileStream classe com o caminho especificado, modo de criação, permissão de leitura/escrita e partilha, e tamanho do buffer.

FileStream(IntPtr, FileAccess, Boolean, Int32, Boolean)
Obsoleto.
Obsoleto.
Obsoleto.

Inicializa uma nova instância da FileStream classe para o handle de ficheiro especificado, com a permissão de leitura/escrita especificada, FileStream propriedade da instância, tamanho do buffer e estado síncrono ou assíncrono.

FileStream(String, FileMode, FileAccess, FileShare)

Inicializa uma nova instância da FileStream classe com o caminho especificado, modo de criação, permissão de leitura/escrita e permissão de partilha.

FileStream(IntPtr, FileAccess, Boolean, Int32)
Obsoleto.
Obsoleto.
Obsoleto.

Inicializa uma nova instância da FileStream classe para o handle de ficheiro especificado, com a permissão de leitura/escrita especificada, FileStream propriedade da instância e tamanho do buffer.

FileStream(String, FileMode, FileAccess, FileShare, Int32, Boolean)

Inicializa uma nova instância da FileStream classe com o caminho especificado, modo de criação, permissões de leitura/escrita e partilha, tamanho do buffer e estado síncrono ou assíncrono.

FileStream(String, FileMode, FileAccess)

Inicializa uma nova instância da FileStream classe com o caminho especificado, modo de criação e permissão de leitura/escrita.

FileStream(IntPtr, FileAccess, Boolean)
Obsoleto.
Obsoleto.
Obsoleto.

Inicializa uma nova instância da FileStream classe para o handle de ficheiro especificado, com a permissão de leitura/escrita e FileStream a propriedade da instância especificadas.

FileStream(SafeFileHandle, FileAccess, Int32)

Inicializa uma nova instância da FileStream classe para o handle de ficheiro especificado, com a permissão de leitura/escrita e o tamanho do buffer especificados.

FileStream(SafeFileHandle, FileAccess, Int32, Boolean)

Inicializa uma nova instância da FileStream classe para o handle de ficheiro especificado, com a permissão de leitura/escrita especificada, tamanho do buffer e estado síncrono ou assíncrono.

FileStream(String, FileStreamOptions)

Inicializa uma nova instância da FileStream classe com o caminho especificado, modo de criação, permissão de leitura/escrita e partilha, tamanho do buffer, opções adicionais de ficheiro, tamanho de pré-alocação e o acesso que outros FileStreams podem ter ao mesmo ficheiro.

FileStream(String, FileMode)

Inicializa uma nova instância da FileStream classe com o caminho e modo de criação especificados.

FileStream(IntPtr, FileAccess)
Obsoleto.
Obsoleto.
Obsoleto.

Inicializa uma nova instância da FileStream classe para o handle de ficheiro especificado, com a permissão de leitura/escrita especificada.

FileStream(SafeFileHandle, FileAccess)

Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs

Inicializa uma nova instância da FileStream classe para o handle de ficheiro especificado, com a permissão de leitura/escrita especificada.

public:
 FileStream(Microsoft::Win32::SafeHandles::SafeFileHandle ^ handle, System::IO::FileAccess access);
public FileStream(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access);
new System.IO.FileStream : Microsoft.Win32.SafeHandles.SafeFileHandle * System.IO.FileAccess -> System.IO.FileStream
Public Sub New (handle As SafeFileHandle, access As FileAccess)

Parâmetros

handle
SafeFileHandle

Um handle de ficheiro para o ficheiro que o objeto atual FileStream irá encapsular.

access
FileAccess

Uma combinação bit a bit dos valores de enumeração que define as CanRead propriedades e CanWrite do FileStream objeto.

Exceções

access não é um corpo de FileAccess.

O interlocutor não tem a permissão necessária.

Ocorreu um erro de E/S, como um erro de disco.

-ou-

O riacho foi encerrado.

O access pedido não é permitido pelo sistema operativo para o handle de ficheiro especificado, como quando access is Write or ReadWrite e o handle de ficheiro está definido para acesso apenas de leitura.

Observações

Quando Close é chamado, o handle também é fechado e a contagem de handle do ficheiro é decrementada.

FileStream assume que tem controlo exclusivo sobre a alça. Ler, escrever ou procurar enquanto FileStream alguém também segura uma alça pode resultar em corrupção de dados. Para segurança dos dados, ligue Flush antes de usar o handle e evite chamar quaisquer métodos que não Close sejam depois de terminar de usar o handle.

Atenção

Quando se compila um conjunto de personagens com um determinado cenário cultural e se recuperam essas mesmas personagens com um cenário cultural diferente, as personagens podem não ser interpretáveis e podem causar uma exceção.

FileShare.Read é o padrão para aqueles FileStream construtores sem parâmetro FileShare .

Para obter uma lista de operações comuns de arquivos e diretórios, consulte Tarefas comuns de E/S.

Ver também

Aplica-se a

FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity)

Inicializa uma nova instância da FileStream classe com o caminho especificado, modo de criação, direitos de acesso e permissões de partilha, tamanho do buffer, opções adicionais de ficheiros, controlo de acesso e segurança de auditoria.

public:
 FileStream(System::String ^ path, System::IO::FileMode mode, System::Security::AccessControl::FileSystemRights rights, System::IO::FileShare share, int bufferSize, System::IO::FileOptions options, System::Security::AccessControl::FileSecurity ^ fileSecurity);
public FileStream(string path, System.IO.FileMode mode, System.Security.AccessControl.FileSystemRights rights, System.IO.FileShare share, int bufferSize, System.IO.FileOptions options, System.Security.AccessControl.FileSecurity fileSecurity);
new System.IO.FileStream : string * System.IO.FileMode * System.Security.AccessControl.FileSystemRights * System.IO.FileShare * int * System.IO.FileOptions * System.Security.AccessControl.FileSecurity -> System.IO.FileStream
Public Sub New (path As String, mode As FileMode, rights As FileSystemRights, share As FileShare, bufferSize As Integer, options As FileOptions, fileSecurity As FileSecurity)

Parâmetros

path
String

Um caminho relativo ou absoluto para o ficheiro que o objeto atual FileStream irá encapsular.

mode
FileMode

Um dos valores de enumeração que determina como abrir ou criar o ficheiro.

rights
FileSystemRights

Uma combinação bit a bit dos valores de enumeração que determina os direitos de acesso a usar ao criar regras de acesso e auditoria para o ficheiro.

share
FileShare

Uma combinação bit a bit dos valores de enumeração que determina como o ficheiro será partilhado pelos processos.

bufferSize
Int32

Um valor positivo Int32 superior a 0 indica o tamanho do buffer. O tamanho padrão do buffer é 4096.

options
FileOptions

Uma combinação bit a bit dos valores de enumeração que especifica opções adicionais de ficheiro.

fileSecurity
FileSecurity

Um objeto que determina o controlo de acesso e a segurança de auditoria do ficheiro.

Exceções

path é null.

.NET Framework e .NET Core versões anteriores à 2.1: path é uma cadeia vazia (""), contém apenas espaço em branco, ou contém um ou mais caracteres inválidos.

-ou-

path refere-se a um dispositivo que não é de ficheiro, como "con:", "com1:", "lpt1:", etc., num ambiente NTFS.

path refere-se a um dispositivo que não seja ficheiro, como "con:", "com1:", "lpt1:", etc., num ambiente não NTFS.

bufferSize é negativo ou zero.

-ou-

mode, rights, ou share contêm um valor inválido.

O ficheiro não pode ser encontrado, como quando mode é FileMode.Truncate ou FileMode.Open, e o ficheiro especificado por path não existe. O ficheiro deve já existir nestes modos.

Ocorreu um erro de E/S, como especificar FileMode.CreateNew quando o ficheiro especificado por path já existe.

-ou-

O riacho foi encerrado.

O interlocutor não tem a permissão necessária.

O caminho especificado é inválido, como se estivesse num disco não mapeado.

O rights pedido não é permitido pelo sistema operativo para o especificado path, como quando rights é Write ou ReadWrite e o ficheiro ou diretório está definido para acesso apenas de leitura.

-ou-

Encrypted é especificado para options, mas a encriptação de ficheiros não é suportada na plataforma atual.

O nome do ficheiro especificado path, ou ambos, excedem o comprimento máximo definido pelo sistema.

O sistema operativo atual não é Windows NT nem versões posteriores.

Exemplos

O exemplo seguinte escreve dados num ficheiro e depois lê os dados usando o FileStream objeto.

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();
        }
    }
}
open System
open System.IO;
open System.Text
open System.Security.AccessControl;

try
    // Create a file and write data to it.

    // Create an array of bytes.
    let messageByte = Encoding.ASCII.GetBytes "Here is some data."
    // Specify an access control list (ACL)
    let fs = FileSecurity()

    FileSystemAccessRule(@"DOMAINNAME\AccountName", FileSystemRights.ReadData, AccessControlType.Allow)
    |> fs.AddAccessRule
    // Create a file using the FileStream class.
    let fWrite = new FileStream("test.txt", FileMode.Create, FileSystemRights.Modify, FileShare.None, 8, FileOptions.None, fs)

    // Write the number of bytes to the file.
    byte messageByte.Length
    |> fWrite.WriteByte

    // 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.

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

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

    // Create a new byte array for the data.
    let readBytes = Array.zeroCreate length

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

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

    // Display the data.
    printfn $"{Encoding.ASCII.GetString readBytes}"
    printfn "Done writing and reading data."

with e ->
    printfn $"{e}"
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

Observações

.NET Framework não suporta acesso direto a discos físicos através de caminhos que sejam nomes de dispositivos, como "\\.\PHYSICALDRIVE0".

Use este FileStream construtor para aplicar direitos de acesso no momento da criação de um ficheiro. Para aceder ou modificar direitos sobre um ficheiro existente, considere usar os GetAccessControl métodos and SetAccessControl .

O fileOptions parâmetro é usado para dar acesso a operações mais avançadas que pode ser utilizado ao criar um FileStream objeto.

O path parâmetro pode ser um nome de ficheiro, incluindo um ficheiro numa partilha da Convenção Universal de Nomes (UNC).

Note

path não é necessário que seja um ficheiro armazenado em disco; Pode ser qualquer parte de um sistema que suporte o acesso através de streams. Por exemplo, dependendo do sistema, esta classe pode aceder a um dispositivo físico.

CanSeek é true para todos FileStream os objetos que encapsulam ficheiros. Se path indica um dispositivo que não suporta a procura, a CanSeek propriedade sobre o resultado FileStream é false. Para obter informações adicionais, consulte CanSeek.

Atenção

Quando se compila um conjunto de personagens com um determinado cenário cultural e se recuperam essas mesmas personagens com um cenário cultural diferente, as personagens podem não ser interpretáveis e podem causar uma exceção.

Para obter uma lista de operações comuns de arquivos e diretórios, consulte Tarefas comuns de E/S.

Importante

Este construtor existe apenas no .NET Framework. No .NET, pode usar o método de extensão Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) em vez disso.

Ver também

Aplica-se a

FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions)

Inicializa uma nova instância da FileStream classe com o caminho especificado, modo de criação, direitos de acesso e permissão de partilha, tamanho do buffer e opções adicionais de ficheiro.

public:
 FileStream(System::String ^ path, System::IO::FileMode mode, System::Security::AccessControl::FileSystemRights rights, System::IO::FileShare share, int bufferSize, System::IO::FileOptions options);
public FileStream(string path, System.IO.FileMode mode, System.Security.AccessControl.FileSystemRights rights, System.IO.FileShare share, int bufferSize, System.IO.FileOptions options);
new System.IO.FileStream : string * System.IO.FileMode * System.Security.AccessControl.FileSystemRights * System.IO.FileShare * int * System.IO.FileOptions -> System.IO.FileStream
Public Sub New (path As String, mode As FileMode, rights As FileSystemRights, share As FileShare, bufferSize As Integer, options As FileOptions)

Parâmetros

path
String

Um caminho relativo ou absoluto para o ficheiro que o objeto atual FileStream irá encapsular.

mode
FileMode

Um dos valores de enumeração que determina como abrir ou criar o ficheiro.

rights
FileSystemRights

Uma combinação bit a bit dos valores de enumeração que determina os direitos de acesso a usar ao criar regras de acesso e auditoria para o ficheiro.

share
FileShare

Uma combinação bit a bit dos valores de enumeração que determina como o ficheiro será partilhado pelos processos.

bufferSize
Int32

Um valor positivo Int32 superior a 0 indica o tamanho do buffer. O tamanho padrão do buffer é 4096.

options
FileOptions

Uma combinação bit a bit dos valores de enumeração que especifica opções adicionais de ficheiro.

Exceções

path é null.

.NET Framework e .NET Core versões anteriores à 2.1: path é uma cadeia vazia (""), contém apenas espaço em branco, ou contém um ou mais caracteres inválidos.

-ou-

path refere-se a um dispositivo que não é de ficheiro, como "con:", "com1:", "lpt1:", etc., num ambiente NTFS.

path refere-se a um dispositivo que não seja ficheiro, como "con:", "com1:", "lpt1:", etc., num ambiente não NTFS.

bufferSize é negativo ou zero.

-ou-

mode, rights, ou share contém um valor inválido.

O ficheiro não pode ser encontrado, como quando mode é FileMode.Truncate ou FileMode.Open, e o ficheiro especificado por path não existe. O ficheiro deve já existir nestes modos.

O sistema operativo atual não é Windows NT nem versões posteriores.

Ocorreu um erro de E/S, como especificar FileMode.CreateNew quando o ficheiro especificado por path já existe.

-ou-

O riacho foi encerrado.

O interlocutor não tem a permissão necessária.

O caminho especificado é inválido, como se estivesse num disco não mapeado.

O rights pedido não é permitido pelo sistema operativo para o especificado path, como quando rights é Write ou ReadWrite e o ficheiro ou diretório está definido para acesso apenas de leitura.

-ou-

Encrypted é especificado para options, mas a encriptação de ficheiros não é suportada na plataforma atual.

O nome do ficheiro especificado path, ou ambos, excedem o comprimento máximo definido pelo sistema.

Observações

.NET Framework não suporta acesso direto a discos físicos através de caminhos que sejam nomes de dispositivos, como "\\.\PHYSICALDRIVE0".

Use este FileStream construtor para aplicar direitos de acesso no momento da criação de um ficheiro. Para aceder ou modificar direitos sobre um ficheiro existente, considere usar os GetAccessControl métodos and SetAccessControl .

O fileOptions parâmetro é usado para dar acesso a operações mais avançadas que pode ser utilizado ao criar um FileStream objeto.

O path parâmetro pode ser um nome de ficheiro, incluindo um ficheiro numa partilha da Convenção Universal de Nomes (UNC).

Note

path não é necessário que seja um ficheiro armazenado em disco; Pode ser qualquer parte de um sistema que suporte o acesso através de streams. Por exemplo, dependendo do sistema, esta classe pode aceder a um dispositivo físico.

CanSeek é true para todos FileStream os objetos que encapsulam ficheiros. Se path indica um dispositivo que não suporta a procura, a CanSeek propriedade sobre o resultado FileStream é false. Para obter informações adicionais, consulte CanSeek.

Atenção

Quando se compila um conjunto de personagens com um determinado cenário cultural e se recuperam essas mesmas personagens com um cenário cultural diferente, as personagens podem não ser interpretáveis e podem causar uma exceção.

Para obter uma lista de operações comuns de arquivos e diretórios, consulte Tarefas comuns de E/S.

Ver também

Aplica-se a

FileStream(String, FileMode, FileAccess, FileShare, Int32, FileOptions)

Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs

Inicializa uma nova instância da FileStream classe com o caminho especificado, modo de criação, permissão de leitura/escrita e partilha, o acesso a outros FileStreams ao mesmo ficheiro, o tamanho do buffer e opções adicionais de ficheiro.

public:
 FileStream(System::String ^ path, System::IO::FileMode mode, System::IO::FileAccess access, System::IO::FileShare share, int bufferSize, System::IO::FileOptions options);
public FileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize, System.IO.FileOptions options);
new System.IO.FileStream : string * System.IO.FileMode * System.IO.FileAccess * System.IO.FileShare * int * System.IO.FileOptions -> System.IO.FileStream
Public Sub New (path As String, mode As FileMode, access As FileAccess, share As FileShare, bufferSize As Integer, options As FileOptions)

Parâmetros

path
String

Um caminho relativo ou absoluto para o ficheiro que o objeto atual FileStream irá encapsular.

mode
FileMode

Um dos valores de enumeração que determina como abrir ou criar o ficheiro.

access
FileAccess

Uma combinação bit a bit dos valores de enumeração que determina como o ficheiro pode ser acedido pelo FileStream objeto. Isto também determina os valores devolvidos pelas CanRead propriedades e CanWrite do FileStream objeto. CanSeek é true se path especificar um ficheiro de disco.

share
FileShare

Uma combinação bit a bit dos valores de enumeração que determina como o ficheiro será partilhado pelos processos.

bufferSize
Int32

Um valor positivo Int32 superior a 0 indica o tamanho do buffer. O tamanho padrão do buffer é 4096.

options
FileOptions

Uma combinação bit a bit dos valores de enumeração que especifica opções adicionais de ficheiro.

Exceções

path é null.

.NET Framework e .NET Core versões anteriores à 2.1: path é uma cadeia vazia (""), contém apenas espaço em branco, ou contém um ou mais caracteres inválidos.

-ou-

path refere-se a um dispositivo que não é de ficheiro, como "con:", "com1:", "lpt1:", etc., num ambiente NTFS.

path refere-se a um dispositivo que não seja ficheiro, como "con:", "com1:", "lpt1:", etc., num ambiente não NTFS.

bufferSize é negativo ou zero.

-ou-

mode, access, ou share contêm um valor inválido.

O ficheiro não pode ser encontrado, como quando mode é FileMode.Truncate ou FileMode.Open, e o ficheiro especificado por path não existe. O ficheiro deve já existir nestes modos.

Ocorreu um erro de E/S, como especificar FileMode.CreateNew quando o ficheiro especificado por path já existe.

-ou-

O riacho foi encerrado.

O interlocutor não tem a permissão necessária.

O caminho especificado é inválido, como se estivesse num disco não mapeado.

O access pedido não é permitido pelo sistema operativo para o especificado path, como quando access é Write ou ReadWrite e o ficheiro ou diretório está definido para acesso apenas de leitura.

-ou-

Encrypted é especificado para options, mas a encriptação de ficheiros não é suportada na plataforma atual.

O caminho especificado, nome do ficheiro ou ambos excedem o comprimento máximo definido pelo sistema.

Exemplos

O exemplo seguinte escreve dados num ficheiro e depois lê os dados usando o FileStream objeto.

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();
        }
    }
}
open System.IO
open System.Text

try
    // Create a file and write data to it.

    // Create an array of bytes.
    let messageByte = Encoding.ASCII.GetBytes "Here is some data."

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

    // Write the number of bytes to the file.
    byte messageByte.Length |> fWrite.WriteByte

    // 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.

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

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

    // Create a new byte array for the data.
    let readBytes = Array.zeroCreate length

    // Read the data from the file.
    fRead.Read(readBytes, 0, readBytes.Length) |> ignore

    // Close the stream.
    fRead.Close()

    // Display the data.
    printfn $"{Encoding.ASCII.GetString readBytes}"

    printfn "Done writing and reading data."

with e ->
    printfn $"{e}"
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

Observações

.NET não suporta acesso direto a discos físicos através de caminhos que sejam nomes de dispositivos, como "\\.\PHYSICALDRIVE0 ".

O fileOptions parâmetro é usado para fornecer acesso a operações mais avançadas que podem ser aproveitadas ao criar um FileStream objeto.

O path parâmetro pode ser um nome de ficheiro, incluindo um ficheiro numa partilha da Convenção Universal de Nomes (UNC).

Note

path não é necessário que seja um ficheiro armazenado em disco; Pode ser qualquer parte de um sistema que suporte o acesso através de streams. Por exemplo, dependendo do sistema, esta classe pode aceder a um dispositivo físico.

CanSeek é true para todos FileStream os objetos que encapsulam ficheiros. Se path indica um dispositivo que não suporta a procura, a CanSeek propriedade sobre o resultado FileStream é false. Para obter informações adicionais, consulte CanSeek.

Atenção

Quando se compila um conjunto de personagens com um determinado cenário cultural e se recuperam essas mesmas personagens com um cenário cultural diferente, as personagens podem não ser interpretáveis e podem causar uma exceção.

Para obter uma lista de operações comuns de arquivos e diretórios, consulte Tarefas comuns de E/S.

Ver também

Aplica-se a

FileStream(String, FileMode, FileAccess, FileShare, Int32)

Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs

Inicializa uma nova instância da FileStream classe com o caminho especificado, modo de criação, permissão de leitura/escrita e partilha, e tamanho do buffer.

public:
 FileStream(System::String ^ path, System::IO::FileMode mode, System::IO::FileAccess access, System::IO::FileShare share, int bufferSize);
public FileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize);
new System.IO.FileStream : string * System.IO.FileMode * System.IO.FileAccess * System.IO.FileShare * int -> System.IO.FileStream
Public Sub New (path As String, mode As FileMode, access As FileAccess, share As FileShare, bufferSize As Integer)

Parâmetros

path
String

Um caminho relativo ou absoluto para o ficheiro que o objeto atual FileStream irá encapsular.

mode
FileMode

Um dos valores de enumeração que determina como abrir ou criar o ficheiro.

access
FileAccess

Uma combinação bit a bit dos valores de enumeração que determina como o ficheiro pode ser acedido pelo FileStream objeto. Isto também determina os valores devolvidos pelas CanRead propriedades e CanWrite do FileStream objeto. CanSeek é true se path especificar um ficheiro de disco.

share
FileShare

Uma combinação bit a bit dos valores de enumeração que determina como o ficheiro será partilhado pelos processos.

bufferSize
Int32

Um valor positivo Int32 superior a 0 indica o tamanho do buffer. O tamanho padrão do buffer é 4096.

Exceções

path é null.

.NET Framework e .NET Core versões anteriores à 2.1: path é uma cadeia vazia (""), contém apenas espaço em branco, ou contém um ou mais caracteres inválidos.

-ou-

path refere-se a um dispositivo que não é de ficheiro, como "con:", "com1:", "lpt1:", etc., num ambiente NTFS.

path refere-se a um dispositivo que não seja ficheiro, como "con:", "com1:", "lpt1:", etc., num ambiente não NTFS.

bufferSize é negativo ou zero.

-ou-

mode, access, ou share contêm um valor inválido.

O ficheiro não pode ser encontrado, como quando mode é FileMode.Truncate ou FileMode.Open, e o ficheiro especificado por path não existe. O ficheiro deve já existir nestes modos.

Ocorreu um erro de E/S, como especificar FileMode.CreateNew quando o ficheiro especificado por path já existe.

-ou-

O riacho foi encerrado.

O interlocutor não tem a permissão necessária.

O caminho especificado é inválido, como se estivesse num disco não mapeado.

O access pedido não é permitido pelo sistema operativo para o especificado path, como quando access é Write ou ReadWrite e o ficheiro ou diretório está definido para acesso apenas de leitura.

O caminho especificado, nome do ficheiro ou ambos excedem o comprimento máximo definido pelo sistema.

Observações

.NET não suporta acesso direto a discos físicos através de caminhos que sejam nomes de dispositivos, como "\\.\PHYSICALDRIVE0 ".

O path parâmetro pode ser um nome de ficheiro, incluindo um ficheiro numa partilha da Convenção Universal de Nomes (UNC).

Note

path não é necessário que seja um ficheiro armazenado em disco; Pode ser qualquer parte de um sistema que suporte o acesso através de streams. Por exemplo, dependendo do sistema, esta classe pode aceder a um dispositivo físico.

CanSeek é true para todos FileStream os objetos que encapsulam ficheiros. Se path indica um dispositivo que não suporta a procura, a CanSeek propriedade sobre o resultado FileStream é false. Para obter informações adicionais, consulte CanSeek.

Atenção

Quando se compila um conjunto de personagens com um determinado cenário cultural e se recuperam essas mesmas personagens com um cenário cultural diferente, as personagens podem não ser interpretáveis e podem causar uma exceção.

Para obter uma lista de operações comuns de arquivos e diretórios, consulte Tarefas comuns de E/S.

Ver também

Aplica-se a

FileStream(IntPtr, FileAccess, Boolean, Int32, Boolean)

Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs

Atenção

This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access, int bufferSize, bool isAsync) and optionally make a new SafeFileHandle with ownsHandle=false if needed instead.

Atenção

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. https://go.microsoft.com/fwlink/?linkid=14202

Atenção

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

Inicializa uma nova instância da FileStream classe para o handle de ficheiro especificado, com a permissão de leitura/escrita especificada, FileStream propriedade da instância, tamanho do buffer e estado síncrono ou assíncrono.

public:
 FileStream(IntPtr handle, System::IO::FileAccess access, bool ownsHandle, int bufferSize, bool isAsync);
[System.Obsolete("This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access, int bufferSize, bool isAsync) and optionally make a new SafeFileHandle with ownsHandle=false if needed instead.")]
public FileStream(IntPtr handle, System.IO.FileAccess access, bool ownsHandle, int bufferSize, bool isAsync);
[System.Obsolete("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.  https://go.microsoft.com/fwlink/?linkid=14202")]
public FileStream(IntPtr handle, System.IO.FileAccess access, bool ownsHandle, int bufferSize, bool isAsync);
[System.Obsolete("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, System.IO.FileAccess access, bool ownsHandle, int bufferSize, bool isAsync);
public FileStream(IntPtr handle, System.IO.FileAccess access, bool ownsHandle, int bufferSize, bool isAsync);
[<System.Obsolete("This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access, int bufferSize, bool isAsync) and optionally make a new SafeFileHandle with ownsHandle=false if needed instead.")>]
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool * int * bool -> System.IO.FileStream
[<System.Obsolete("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.  https://go.microsoft.com/fwlink/?linkid=14202")>]
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool * int * bool -> System.IO.FileStream
[<System.Obsolete("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")>]
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool * int * bool -> System.IO.FileStream
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool * int * bool -> System.IO.FileStream
Public Sub New (handle As IntPtr, access As FileAccess, ownsHandle As Boolean, bufferSize As Integer, isAsync As Boolean)

Parâmetros

handle
IntPtr

nativeint

Um handle de ficheiro para o ficheiro que este FileStream objeto irá encapsular.

access
FileAccess

Uma combinação bit a bit dos valores de enumeração que define as CanRead propriedades e CanWrite do FileStream objeto.

ownsHandle
Boolean

true se o handle do ficheiro for propriedade desta FileStream instância; caso contrário, false.

bufferSize
Int32

Um valor positivo Int32 superior a 0 indica o tamanho do buffer. O tamanho padrão do buffer é 4096.

isAsync
Boolean

true se a manivela fosse aberta assíncrona (isto é, em modo de E/S sobreposta); caso contrário, false.

Atributos

Exceções

access é menor ou FileAccess.Read maior que FileAccess.ReadWrite ou bufferSize é menor ou igual a 0.

A alça é inválida.

Ocorreu um erro de E/S, como um erro de disco.

-ou-

O riacho foi encerrado.

O interlocutor não tem a permissão necessária.

O access pedido não é permitido pelo sistema operativo para o handle de ficheiro especificado, como quando access is Write or ReadWrite e o handle de ficheiro está definido para acesso apenas de leitura.

Observações

O FileStream objeto recebe o acesso especificado ao ficheiro. A titularidade do cabo será conforme especificado. Se este FileStream possuir o handle, uma chamada ao Close método também fechará o handle. Em particular, o número de handles do ficheiro é diminuído. O FileStream objeto recebe o tamanho do buffer especificado.

FileStream assume que tem controlo exclusivo sobre a alça. Ler, escrever ou procurar enquanto FileStream alguém também segura uma alça pode resultar em corrupção de dados. Para segurança dos dados, ligue Flush antes de usar o handle e evite chamar quaisquer métodos que não Close sejam depois de terminar de usar o handle. Alternativamente, leia e escreva no handle antes de chamar este FileStream construtor.

FileShare.Read é o padrão para aqueles FileStream construtores sem parâmetro FileShare .

Atenção

Quando se compila um conjunto de personagens com um determinado cenário cultural e se recuperam essas mesmas personagens com um cenário cultural diferente, as personagens podem não ser interpretáveis e podem causar uma exceção.

Para obter uma lista de operações comuns de arquivos e diretórios, consulte Tarefas comuns de E/S.

Ver também

Aplica-se a

FileStream(String, FileMode, FileAccess, FileShare)

Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs

Inicializa uma nova instância da FileStream classe com o caminho especificado, modo de criação, permissão de leitura/escrita e permissão de partilha.

public:
 FileStream(System::String ^ path, System::IO::FileMode mode, System::IO::FileAccess access, System::IO::FileShare share);
public FileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share);
new System.IO.FileStream : string * System.IO.FileMode * System.IO.FileAccess * System.IO.FileShare -> System.IO.FileStream
Public Sub New (path As String, mode As FileMode, access As FileAccess, share As FileShare)

Parâmetros

path
String

Um caminho relativo ou absoluto para o ficheiro que o objeto atual FileStream irá encapsular.

mode
FileMode

Um dos valores de enumeração que determina como abrir ou criar o ficheiro.

access
FileAccess

Uma combinação bit a bit dos valores de enumeração que determina como o ficheiro pode ser acedido pelo FileStream objeto. Isto também determina os valores devolvidos pelas CanRead propriedades e CanWrite do FileStream objeto. CanSeek é true se path especificar um ficheiro de disco.

share
FileShare

Uma combinação bit a bit dos valores de enumeração que determina como o ficheiro será partilhado pelos processos.

Exceções

path é null.

.NET Framework e .NET Core versões anteriores à 2.1: path é uma cadeia vazia (""), contém apenas espaço em branco, ou contém um ou mais caracteres inválidos.

-ou-

path refere-se a um dispositivo que não é de ficheiro, como "con:", "com1:", "lpt1:", etc., num ambiente NTFS.

path refere-se a um dispositivo que não seja ficheiro, como "con:", "com1:", "lpt1:", etc., num ambiente não NTFS.

O ficheiro não pode ser encontrado, como quando mode é FileMode.Truncate ou FileMode.Open, e o ficheiro especificado por path não existe. O ficheiro deve já existir nestes modos.

Ocorreu um erro de E/S, como especificar FileMode.CreateNew quando o ficheiro especificado por path já existe.

-ou-

O riacho foi encerrado.

O interlocutor não tem a permissão necessária.

O caminho especificado é inválido, como se estivesse num disco não mapeado.

O access pedido não é permitido pelo sistema operativo para o especificado path, como quando access é Write ou ReadWrite e o ficheiro ou diretório está definido para acesso apenas de leitura.

O caminho especificado, nome do ficheiro ou ambos excedem o comprimento máximo definido pelo sistema.

mode contém um valor inválido.

Exemplos

Este exemplo de código faz parte de um exemplo maior fornecido para o Lock método.

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

Observações

.NET não suporta acesso direto a discos físicos através de caminhos que sejam nomes de dispositivos, como "\\.\PHYSICALDRIVE0 ".

O path parâmetro pode ser um nome de ficheiro, incluindo um ficheiro numa partilha da Convenção Universal de Nomes (UNC).

O construtor recebe acesso de leitura/escrita ao ficheiro, e este é aberto partilhando acesso de leitura (ou seja, pedidos para abrir o ficheiro para escrita por este ou outro processo falham até que o FileStream objeto seja fechado, mas as tentativas de leitura terão sucesso). O tamanho do buffer é definido para o padrão de 4096 bytes (4 KB).

Note

path não é necessário que seja um ficheiro armazenado em disco; Pode ser qualquer parte de um sistema que suporte o acesso através de streams. Por exemplo, dependendo do sistema, esta classe pode aceder a um dispositivo físico.

CanSeek é true para todos FileStream os objetos que encapsulam ficheiros. Se path indica um dispositivo que não suporta a procura, a CanSeek propriedade sobre o resultado FileStream é false. Para obter informações adicionais, consulte CanSeek.

Atenção

Quando se compila um conjunto de personagens com um determinado cenário cultural e se recuperam essas mesmas personagens com um cenário cultural diferente, as personagens podem não ser interpretáveis e podem causar uma exceção.

Para obter uma lista de operações comuns de arquivos e diretórios, consulte Tarefas comuns de E/S.

Ver também

Aplica-se a

FileStream(IntPtr, FileAccess, Boolean, Int32)

Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs

Atenção

This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access, int bufferSize) and optionally make a new SafeFileHandle with ownsHandle=false if needed instead.

Atenção

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. https://go.microsoft.com/fwlink/?linkid=14202

Atenção

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

Inicializa uma nova instância da FileStream classe para o handle de ficheiro especificado, com a permissão de leitura/escrita especificada, FileStream propriedade da instância e tamanho do buffer.

public:
 FileStream(IntPtr handle, System::IO::FileAccess access, bool ownsHandle, int bufferSize);
[System.Obsolete("This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access, int bufferSize) and optionally make a new SafeFileHandle with ownsHandle=false if needed instead.")]
public FileStream(IntPtr handle, System.IO.FileAccess access, bool ownsHandle, int bufferSize);
[System.Obsolete("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.  https://go.microsoft.com/fwlink/?linkid=14202")]
public FileStream(IntPtr handle, System.IO.FileAccess access, bool ownsHandle, int bufferSize);
[System.Obsolete("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, System.IO.FileAccess access, bool ownsHandle, int bufferSize);
public FileStream(IntPtr handle, System.IO.FileAccess access, bool ownsHandle, int bufferSize);
[<System.Obsolete("This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access, int bufferSize) and optionally make a new SafeFileHandle with ownsHandle=false if needed instead.")>]
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool * int -> System.IO.FileStream
[<System.Obsolete("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.  https://go.microsoft.com/fwlink/?linkid=14202")>]
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool * int -> System.IO.FileStream
[<System.Obsolete("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")>]
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool * int -> System.IO.FileStream
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool * int -> System.IO.FileStream
Public Sub New (handle As IntPtr, access As FileAccess, ownsHandle As Boolean, bufferSize As Integer)

Parâmetros

handle
IntPtr

nativeint

Um handle de ficheiro para o ficheiro que este FileStream objeto irá encapsular.

access
FileAccess

Uma combinação bit a bit dos valores de enumeração que define as CanRead propriedades e CanWrite do FileStream objeto.

ownsHandle
Boolean

true se o handle do ficheiro for propriedade desta FileStream instância; caso contrário, false.

bufferSize
Int32

Um valor positivo Int32 superior a 0 indica o tamanho do buffer. O tamanho padrão do buffer é 4096.

Atributos

Exceções

bufferSize é negativo.

Ocorreu um erro de E/S, como um erro de disco.

-ou-

O riacho foi encerrado.

O interlocutor não tem a permissão necessária.

O access pedido não é permitido pelo sistema operativo para o handle de ficheiro especificado, como quando access is Write or ReadWrite e o handle de ficheiro está definido para acesso apenas de leitura.

Observações

O FileStream objeto recebe o acesso especificado ao ficheiro. A titularidade do cabo será conforme especificado. Se este FileStream possuir o handle, uma chamada ao Close método também fechará o handle. Em particular, o número de handles do ficheiro é diminuído. O FileStream objeto recebe o tamanho do buffer especificado.

FileStream assume que tem controlo exclusivo sobre a alça. Ler, escrever ou procurar enquanto FileStream alguém também segura uma alça pode resultar em corrupção de dados. Para segurança dos dados, ligue Flush antes de usar o handle e evite chamar quaisquer métodos que não Close sejam depois de terminar de usar o handle. Alternativamente, leia e escreva no handle antes de chamar este FileStream construtor.

FileShare.Read é o padrão para aqueles FileStream construtores sem parâmetro FileShare .

Atenção

Quando se compila um conjunto de personagens com um determinado cenário cultural e se recuperam essas mesmas personagens com um cenário cultural diferente, as personagens podem não ser interpretáveis e podem causar uma exceção.

Para obter uma lista de operações comuns de arquivos e diretórios, consulte Tarefas comuns de E/S.

Ver também

Aplica-se a

FileStream(String, FileMode, FileAccess, FileShare, Int32, Boolean)

Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs

Inicializa uma nova instância da FileStream classe com o caminho especificado, modo de criação, permissões de leitura/escrita e partilha, tamanho do buffer e estado síncrono ou assíncrono.

public:
 FileStream(System::String ^ path, System::IO::FileMode mode, System::IO::FileAccess access, System::IO::FileShare share, int bufferSize, bool useAsync);
public FileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize, bool useAsync);
new System.IO.FileStream : string * System.IO.FileMode * System.IO.FileAccess * System.IO.FileShare * int * bool -> System.IO.FileStream
Public Sub New (path As String, mode As FileMode, access As FileAccess, share As FileShare, bufferSize As Integer, useAsync As Boolean)

Parâmetros

path
String

Um caminho relativo ou absoluto para o ficheiro que o objeto atual FileStream irá encapsular.

mode
FileMode

Um dos valores de enumeração que determina como abrir ou criar o ficheiro.

access
FileAccess

Uma combinação bit a bit dos valores de enumeração que determina como o ficheiro pode ser acedido pelo FileStream objeto. Isto também determina os valores devolvidos pelas CanRead propriedades e CanWrite do FileStream objeto. CanSeek é true se path especificar um ficheiro de disco.

share
FileShare

Uma combinação bit a bit dos valores de enumeração que determina como o ficheiro será partilhado pelos processos.

bufferSize
Int32

Um valor positivo Int32 superior a 0 indica o tamanho do buffer. O tamanho padrão do buffer é 4096.

useAsync
Boolean

Especifica se deve usar E/S assíncrona ou E/S síncrona. No entanto, note-se que o sistema operativo subjacente pode não suportar E/S assíncrona, por isso, ao especificar true, o handle pode ser aberto de forma síncrona dependendo da plataforma. Quando abertos de forma assíncrona, os BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) métodos e BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) têm melhor desempenho em leituras ou escritas grandes, mas podem ser muito mais lentos para leituras ou escritas pequenas. Se a aplicação for desenhada para tirar partido de E/S assíncrona, defina o useAsync parâmetro para true. O uso correto de I/O assíncrona pode acelerar as aplicações até por um fator de 10, mas usá-lo sem redesenhar a aplicação para I/O assíncrona pode diminuir o desempenho em até um fator de 10.

Exceções

path é null.

.NET Framework e .NET Core versões anteriores à 2.1: path é uma cadeia vazia (""), contém apenas espaço em branco, ou contém um ou mais caracteres inválidos.

-ou-

path refere-se a um dispositivo que não é de ficheiro, como "con:", "com1:", "lpt1:", etc., num ambiente NTFS.

path refere-se a um dispositivo que não seja ficheiro, como "con:", "com1:", "lpt1:", etc., num ambiente não NTFS.

bufferSize é negativo ou zero.

-ou-

mode, access, ou share contêm um valor inválido.

O ficheiro não pode ser encontrado, como quando mode é FileMode.Truncate ou FileMode.Open, e o ficheiro especificado por path não existe. O ficheiro deve já existir nestes modos.

Ocorreu um erro de E/S, como especificar FileMode.CreateNew quando o ficheiro especificado por path já existe.

-ou-

O riacho foi encerrado.

O interlocutor não tem a permissão necessária.

O caminho especificado é inválido, como se estivesse num disco não mapeado.

O access pedido não é permitido pelo sistema operativo para o especificado path, como quando access é Write ou ReadWrite e o ficheiro ou diretório está definido para acesso apenas de leitura.

O caminho especificado, nome do ficheiro ou ambos excedem o comprimento máximo definido pelo sistema.

Exemplos

O exemplo de código seguinte mostra como escrever dados de forma assíncrona num ficheiro e depois verificar se os dados foram escritos corretamente. Um State objeto é criado para passar informação do thread principal para os EndReadCallback métodos e.EndWriteCallback

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; } }
    }
}
open System
open System.IO
open System.Threading

// Maintain state information to be passed to
// EndWriteCallback and EndReadCallback.
type State(fStream: FileStream, writeArray: byte[], manualEvent: ManualResetEvent) =
    // readArray stores data that is read from the file.
    let readArray = Array.zeroCreate writeArray.Length

    member _.FStream = fStream
    member _.WriteArray = writeArray
    member _.ReadArray = readArray
    member _.ManualEvent = manualEvent

// 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.
let endReadCallback (asyncResult: IAsyncResult) =
    let tempState = asyncResult.AsyncState :?> State
    let readCount = tempState.FStream.EndRead asyncResult

    let mutable i = 0
    let mutable errored = false

    while i < readCount do
        if tempState.ReadArray[i] <> tempState.WriteArray[i] then
            printfn "Error writing data."
            tempState.FStream.Close()
            errored <- true
            i <- readCount

        i <- i + 1

    printfn $"The data was written to {tempState.FStream.Name} and verified."
    tempState.FStream.Close()
    // Signal the main thread that the verification is finished.
    tempState.ManualEvent.Set() |> ignore


// 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.
let endWriteCallback (asyncResult: IAsyncResult) =
    let tempState = asyncResult.AsyncState :?> State
    let fStream = tempState.FStream
    fStream.EndWrite asyncResult

    // Asynchronously read back the written data.
    fStream.Position <- 0

    let asyncResult =
        fStream.BeginRead(tempState.ReadArray, 0, tempState.ReadArray.Length, AsyncCallback endReadCallback, tempState)

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


// Create a synchronization object that gets
// signaled when verification is complete.
let manualEvent = new ManualResetEvent false

// Create random data to write to the file.
let writeArray = Array.zeroCreate 100000
Random.Shared.NextBytes writeArray

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

// Check that the FileStream was opened asynchronously.

if fStream.IsAsync then "" else "not "
|> printfn "fStream was %sopened asynchronously."

// Asynchronously write to the file.
let asyncResult =
    fStream.BeginWrite(
        writeArray,
        0,
        writeArray.Length,
        AsyncCallback endWriteCallback,
        State(fStream, writeArray, manualEvent)
    )

// Concurrently do other work and then wait
// for the data to be written and verified.
manualEvent.WaitOne(5000, false) |> ignore
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

Observações

.NET não suporta acesso direto a discos físicos através de caminhos que sejam nomes de dispositivos, como "\\.\PHYSICALDRIVE0 ".

O path parâmetro pode ser um nome de ficheiro, incluindo um ficheiro numa partilha da Convenção Universal de Nomes (UNC).

Note

path não é necessário que seja um ficheiro armazenado em disco; Pode ser qualquer parte de um sistema que suporte o acesso através de streams. Por exemplo, dependendo do sistema, esta classe pode aceder a um dispositivo físico.

CanSeek é true para todos FileStream os objetos que encapsulam ficheiros. Se path indica um dispositivo que não suporta a procura, a CanSeek propriedade sobre o resultado FileStream é false. Para obter informações adicionais, consulte CanSeek.

Atenção

Quando se compila um conjunto de personagens com um determinado cenário cultural e se recuperam essas mesmas personagens com um cenário cultural diferente, as personagens podem não ser interpretáveis e podem causar uma exceção.

Para obter uma lista de operações comuns de arquivos e diretórios, consulte Tarefas comuns de E/S.

Ver também

Aplica-se a

FileStream(String, FileMode, FileAccess)

Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs

Inicializa uma nova instância da FileStream classe com o caminho especificado, modo de criação e permissão de leitura/escrita.

public:
 FileStream(System::String ^ path, System::IO::FileMode mode, System::IO::FileAccess access);
public FileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access);
new System.IO.FileStream : string * System.IO.FileMode * System.IO.FileAccess -> System.IO.FileStream
Public Sub New (path As String, mode As FileMode, access As FileAccess)

Parâmetros

path
String

Um caminho relativo ou absoluto para o ficheiro que o objeto atual FileStream irá encapsular.

mode
FileMode

Um dos valores de enumeração que determina como abrir ou criar o ficheiro.

access
FileAccess

Uma combinação bit a bit dos valores de enumeração que determina como o ficheiro pode ser acedido pelo FileStream objeto. Isto também determina os valores devolvidos pelas CanRead propriedades e CanWrite do FileStream objeto. CanSeek é true se path especificar um ficheiro de disco.

Exceções

path é null.

.NET Framework e .NET Core versões anteriores à 2.1: path é uma cadeia vazia (""), contém apenas espaço em branco, ou contém um ou mais caracteres inválidos.

-ou-

path refere-se a um dispositivo que não é de ficheiro, como "con:", "com1:", "lpt1:", etc., num ambiente NTFS.

path refere-se a um dispositivo que não seja ficheiro, como "con:", "com1:", "lpt1:", etc., num ambiente não NTFS.

O ficheiro não pode ser encontrado, como quando mode é FileMode.Truncate ou FileMode.Open, e o ficheiro especificado por path não existe. O ficheiro deve já existir nestes modos.

Ocorreu um erro de E/S, como especificar FileMode.CreateNew quando o ficheiro especificado por path já existe.

-ou-

O riacho foi encerrado.

O interlocutor não tem a permissão necessária.

O caminho especificado é inválido, como se estivesse num disco não mapeado.

O access pedido não é permitido pelo sistema operativo para o especificado path, como quando access é Write ou ReadWrite e o ficheiro ou diretório está definido para acesso apenas de leitura.

O caminho especificado, nome do ficheiro ou ambos excedem o comprimento máximo definido pelo sistema.

mode contém um valor inválido.

Observações

.NET não suporta acesso direto a discos físicos através de caminhos que sejam nomes de dispositivos, como "\\.\PHYSICALDRIVE0 ".

O path parâmetro pode ser um nome de ficheiro, incluindo um ficheiro numa partilha da Convenção Universal de Nomes (UNC).

O construtor recebe acesso de leitura/escrita ao ficheiro, e este é aberto partilhando acesso de leitura (ou seja, pedidos para abrir o ficheiro para escrita por este ou outro processo falham até que o FileStream objeto seja fechado, mas as tentativas de leitura terão sucesso). O tamanho do buffer é definido para o padrão de 4096 bytes (4 KB).

Note

path não é necessário que seja um ficheiro armazenado em disco; Pode ser qualquer parte de um sistema que suporte o acesso através de streams. Por exemplo, dependendo do sistema, esta classe pode aceder a um dispositivo físico.

CanSeek é true para todos FileStream os objetos que encapsulam ficheiros. Se path indica um dispositivo que não suporta a procura, a CanSeek propriedade sobre o resultado FileStream é false. Para obter informações adicionais, consulte CanSeek.

FileShare.Read é o padrão para aqueles FileStream construtores sem parâmetro FileShare .

Atenção

Quando se compila um conjunto de personagens com um determinado cenário cultural e se recuperam essas mesmas personagens com um cenário cultural diferente, as personagens podem não ser interpretáveis e podem causar uma exceção.

Para obter uma lista de operações comuns de arquivos e diretórios, consulte Tarefas comuns de E/S.

Ver também

Aplica-se a

FileStream(IntPtr, FileAccess, Boolean)

Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs

Atenção

This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access) and optionally make a new SafeFileHandle with ownsHandle=false if needed instead.

Atenção

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. https://go.microsoft.com/fwlink/?linkid=14202

Atenção

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

Inicializa uma nova instância da FileStream classe para o handle de ficheiro especificado, com a permissão de leitura/escrita e FileStream a propriedade da instância especificadas.

public:
 FileStream(IntPtr handle, System::IO::FileAccess access, bool ownsHandle);
[System.Obsolete("This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access) and optionally make a new SafeFileHandle with ownsHandle=false if needed instead.")]
public FileStream(IntPtr handle, System.IO.FileAccess access, bool ownsHandle);
[System.Obsolete("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.  https://go.microsoft.com/fwlink/?linkid=14202")]
public FileStream(IntPtr handle, System.IO.FileAccess access, bool ownsHandle);
[System.Obsolete("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, System.IO.FileAccess access, bool ownsHandle);
public FileStream(IntPtr handle, System.IO.FileAccess access, bool ownsHandle);
[<System.Obsolete("This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access) and optionally make a new SafeFileHandle with ownsHandle=false if needed instead.")>]
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool -> System.IO.FileStream
[<System.Obsolete("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.  https://go.microsoft.com/fwlink/?linkid=14202")>]
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool -> System.IO.FileStream
[<System.Obsolete("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")>]
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool -> System.IO.FileStream
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool -> System.IO.FileStream
Public Sub New (handle As IntPtr, access As FileAccess, ownsHandle As Boolean)

Parâmetros

handle
IntPtr

nativeint

Um handle de ficheiro para o ficheiro que o objeto atual FileStream irá encapsular.

access
FileAccess

Uma combinação bit a bit dos valores de enumeração que define as CanRead propriedades e CanWrite do FileStream objeto.

ownsHandle
Boolean

true se o handle do ficheiro for propriedade desta FileStream instância; caso contrário, false.

Atributos

Exceções

access não é um corpo de FileAccess.

O interlocutor não tem a permissão necessária.

Ocorreu um erro de E/S, como um erro de disco.

-ou-

O riacho foi encerrado.

O access pedido não é permitido pelo sistema operativo para o handle de ficheiro especificado, como quando access is Write or ReadWrite e o handle de ficheiro está definido para acesso apenas de leitura.

Observações

O FileStream objeto recebe o acesso especificado ao ficheiro. A titularidade do cabo será conforme especificado. Se este processo for proprietário do handle, uma chamada ao Close método também fechará o handle e a contagem de handle do ficheiro será decrementada. O FileStream objeto recebe o tamanho padrão do buffer de 4096 bytes.

FileStream assume que tem controlo exclusivo sobre a alça. Ler, escrever ou procurar enquanto FileStream alguém também segura uma alça pode resultar em corrupção de dados. Para segurança dos dados, ligue Flush antes de usar o handle e evite chamar métodos que não Close sejam depois de terminar de usar o handle.

FileShare.Read é o padrão para aqueles FileStream construtores sem parâmetro FileShare .

Atenção

Quando se compila um conjunto de personagens com um determinado cenário cultural e se recuperam essas mesmas personagens com um cenário cultural diferente, as personagens podem não ser interpretáveis e podem causar uma exceção.

Para obter uma lista de operações comuns de arquivos e diretórios, consulte Tarefas comuns de E/S.

Ver também

Aplica-se a

FileStream(SafeFileHandle, FileAccess, Int32)

Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs

Inicializa uma nova instância da FileStream classe para o handle de ficheiro especificado, com a permissão de leitura/escrita e o tamanho do buffer especificados.

public:
 FileStream(Microsoft::Win32::SafeHandles::SafeFileHandle ^ handle, System::IO::FileAccess access, int bufferSize);
public FileStream(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access, int bufferSize);
new System.IO.FileStream : Microsoft.Win32.SafeHandles.SafeFileHandle * System.IO.FileAccess * int -> System.IO.FileStream
Public Sub New (handle As SafeFileHandle, access As FileAccess, bufferSize As Integer)

Parâmetros

handle
SafeFileHandle

Um handle de ficheiro para o ficheiro que o objeto atual FileStream irá encapsular.

access
FileAccess

Uma FileAccess constante que define as CanRead propriedades e CanWrite do FileStream objeto.

bufferSize
Int32

Um valor positivo Int32 superior a 0 indica o tamanho do buffer. O tamanho padrão do buffer é 4096.

Exceções

O handle parâmetro é um handle inválido.

-ou-

O handle parâmetro é uma alavanca síncrona e foi usado de forma assíncrona.

O bufferSize parâmetro é negativo.

Ocorreu um erro de E/S, como um erro de disco.

-ou-

O riacho foi encerrado.

O interlocutor não tem a permissão necessária.

O access pedido não é permitido pelo sistema operativo para o handle de ficheiro especificado, como quando access is Write or ReadWrite e o handle de ficheiro está definido para acesso apenas de leitura.

Observações

FileStream assume que tem controlo exclusivo sobre a alça. Ler, escrever ou procurar enquanto FileStream alguém também segura uma alça pode resultar em corrupção de dados. Para segurança dos dados, ligue Flush antes de usar o handle e evite chamar quaisquer métodos que não Close sejam depois de terminar de usar o handle. Alternativamente, leia e escreva no handle antes de chamar este FileStream construtor.

FileShare.Read é o padrão para aqueles FileStream construtores sem parâmetro FileShare .

Atenção

Quando se compila um conjunto de personagens com um determinado cenário cultural e se recuperam essas mesmas personagens com um cenário cultural diferente, as personagens podem não ser interpretáveis e podem causar uma exceção.

Para obter uma lista de operações comuns de arquivos e diretórios, consulte Tarefas comuns de E/S.

Ver também

Aplica-se a

FileStream(SafeFileHandle, FileAccess, Int32, Boolean)

Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs

Inicializa uma nova instância da FileStream classe para o handle de ficheiro especificado, com a permissão de leitura/escrita especificada, tamanho do buffer e estado síncrono ou assíncrono.

public:
 FileStream(Microsoft::Win32::SafeHandles::SafeFileHandle ^ handle, System::IO::FileAccess access, int bufferSize, bool isAsync);
public FileStream(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access, int bufferSize, bool isAsync);
new System.IO.FileStream : Microsoft.Win32.SafeHandles.SafeFileHandle * System.IO.FileAccess * int * bool -> System.IO.FileStream
Public Sub New (handle As SafeFileHandle, access As FileAccess, bufferSize As Integer, isAsync As Boolean)

Parâmetros

handle
SafeFileHandle

Um handle de ficheiro para o ficheiro que este FileStream objeto irá encapsular.

access
FileAccess

Uma combinação bit a bit dos valores de enumeração que define as CanRead propriedades e CanWrite do FileStream objeto.

bufferSize
Int32

Um valor positivo Int32 superior a 0 indica o tamanho do buffer. O tamanho padrão do buffer é 4096.

isAsync
Boolean

true se a manivela fosse aberta assíncrona (isto é, em modo de E/S sobreposta); caso contrário, false.

Exceções

O handle parâmetro é um handle inválido.

-ou-

O handle parâmetro é uma alavanca síncrona e foi usado de forma assíncrona.

O bufferSize parâmetro é negativo.

Ocorreu um erro de E/S, como um erro de disco.

-ou-

O riacho foi encerrado.

O interlocutor não tem a permissão necessária.

O access pedido não é permitido pelo sistema operativo para o handle de ficheiro especificado, como quando access is Write or ReadWrite e o handle de ficheiro está definido para acesso apenas de leitura.

Observações

Define o isAsync parâmetro para true abrir o handle do ficheiro de forma assíncrona. Quando o parâmetro é true, o fluxo utiliza E/S sobreposta para realizar operações de ficheiro de forma assíncrona. No entanto, o parâmetro não tem de ser true chamar o ReadAsync, WriteAsync, ou CopyToAsync método. Quando o isAsync parâmetro é false e chamas as operações de leitura e escrita assíncronas, o thread UI continua sem ser bloqueado, mas a operação real de I/O é realizada de forma síncrona.

FileStream assume que tem controlo exclusivo sobre a alça. Ler, escrever ou procurar enquanto FileStream alguém também segura uma alça pode resultar em corrupção de dados. Para segurança dos dados, ligue Flush antes de usar o handle e evite chamar quaisquer métodos que não Close sejam depois de terminar de usar o handle. Alternativamente, leia e escreva no handle antes de chamar este FileStream construtor.

FileShare.Read é o padrão para aqueles FileStream construtores sem parâmetro FileShare .

Atenção

Quando se compila um conjunto de personagens com um determinado cenário cultural e se recuperam essas mesmas personagens com um cenário cultural diferente, as personagens podem não ser interpretáveis e podem causar uma exceção.

Para obter uma lista de operações comuns de arquivos e diretórios, consulte Tarefas comuns de E/S.

Ver também

Aplica-se a

FileStream(String, FileStreamOptions)

Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs

Inicializa uma nova instância da FileStream classe com o caminho especificado, modo de criação, permissão de leitura/escrita e partilha, tamanho do buffer, opções adicionais de ficheiro, tamanho de pré-alocação e o acesso que outros FileStreams podem ter ao mesmo ficheiro.

public:
 FileStream(System::String ^ path, System::IO::FileStreamOptions ^ options);
public FileStream(string path, System.IO.FileStreamOptions options);
new System.IO.FileStream : string * System.IO.FileStreamOptions -> System.IO.FileStream
Public Sub New (path As String, options As FileStreamOptions)

Parâmetros

path
String

Um caminho relativo ou absoluto para o ficheiro que a instância atual FileStream irá encapsular.

options
FileStreamOptions

Um objeto que descreve parâmetros opcionais FileStream a usar.

Exceções

path ou options é null.

path é uma cadeia vazia, contém apenas espaço em branco, ou contém um ou mais caracteres inválidos.

-ou-

path refere-se a um dispositivo que não é de ficheiro, como CON:, COM1:, ou LPT1:, num ambiente NTFS.

path refere-se a um dispositivo que não seja de ficheiro, como CON:, COM1:, LPT1:, etc., num ambiente não NTFS.

O ficheiro não pode ser encontrado, como quando Mode é FileMode.Truncate ou FileMode.Open, e o ficheiro especificado por path não existe. O ficheiro deve já existir nestes modos.

Ocorreu um erro de E/S, como especificar FileMode.CreateNew quando o ficheiro especificado por path já existe.

-ou-

O riacho foi encerrado.

-ou-

O disco estava cheio (quando PreallocationSize fornecido e path apontava para um ficheiro normal).

-ou-

O ficheiro era demasiado grande (quando PreallocationSize foi fornecido e path apontava para um ficheiro normal).

O interlocutor não tem a permissão necessária.

O caminho especificado é inválido, como se estivesse num disco não mapeado.

O Access pedido não é permitido pelo sistema operativo para o especificado path, como quando Access é Write ou ReadWrite e o ficheiro ou diretório está definido para acesso apenas de leitura.

-ou-

Encrypted é especificado para Options , mas a encriptação de ficheiros não é suportada na plataforma atual.

O caminho especificado, nome do ficheiro ou ambos excedem o comprimento máximo definido pelo sistema.

Observações

Especificar um valor para PreallocationSize dá uma pista sobre o tamanho da pré-alocação, mas não é uma garantia forte. Para detalhes completos de utilização, consulte a documentação de PreallocationSize.

Aplica-se a

FileStream(String, FileMode)

Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs

Inicializa uma nova instância da FileStream classe com o caminho e modo de criação especificados.

public:
 FileStream(System::String ^ path, System::IO::FileMode mode);
public FileStream(string path, System.IO.FileMode mode);
new System.IO.FileStream : string * System.IO.FileMode -> System.IO.FileStream
Public Sub New (path As String, mode As FileMode)

Parâmetros

path
String

Um caminho relativo ou absoluto para o ficheiro que o objeto atual FileStream irá encapsular.

mode
FileMode

Um dos valores de enumeração que determina como abrir ou criar o ficheiro.

Exceções

.NET Framework e .NET Core versões anteriores à 2.1: path é uma cadeia vazia (""), contém apenas espaço em branco, ou contém um ou mais caracteres inválidos.

-ou-

path refere-se a um dispositivo que não é de ficheiro, como "con:", "com1:", "lpt1:", etc., num ambiente NTFS.

path refere-se a um dispositivo que não seja ficheiro, como "con:", "com1:", "lpt1:", etc., num ambiente não NTFS.

path é null.

O interlocutor não tem a permissão necessária.

O ficheiro não pode ser encontrado, como quando mode é FileMode.Truncate ou FileMode.Open, e o ficheiro especificado por path não existe. O ficheiro deve já existir nestes modos.

path especifica um ficheiro que é só de leitura.

Ocorreu um erro de E/S, como especificar FileMode.CreateNew quando o ficheiro especificado por path já existe.

-ou-

O riacho foi encerrado.

O caminho especificado é inválido, como se estivesse num disco não mapeado.

O caminho especificado, nome do ficheiro ou ambos excedem o comprimento máximo definido pelo sistema.

mode contém um valor inválido.

Exemplos

O seguinte exemplo de código mostra como escrever dados num ficheiro, byte a byte, e depois verificar se os dados foram escritos corretamente.

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);
        }
    }
}
open System
open System.IO


let fileName = "Test#@@#.dat"

// Create random data to write to the file.
let dataArray = Array.zeroCreate 100000
Random.Shared.NextBytes dataArray

do
    use fileStream = new FileStream(fileName, FileMode.Create)
    // Write the data to the file, byte by byte.
    for i = 0 to dataArray.Length - 1 do
        fileStream.WriteByte dataArray[i]

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

    // Read and verify the data.
    for i in 0L .. fileStream.Length - 1L do
        if dataArray[int i] <> (fileStream.ReadByte() |> byte) then
            printfn "Error writing data."
            exit 1

    printfn $"The data was written to {fileStream.Name} and verified."
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

Observações

.NET não suporta acesso direto a discos físicos através de caminhos que sejam nomes de dispositivos, como "\\.\PHYSICALDRIVE0 ".

O path parâmetro pode ser um nome de ficheiro, incluindo um ficheiro numa partilha da Convenção Universal de Nomes (UNC).

O construtor recebe acesso de leitura/escrita ao ficheiro, e este é aberto partilhando acesso de leitura (ou seja, pedidos para abrir o ficheiro para escrita por este ou outro processo falham até que o FileStream objeto seja fechado, mas as tentativas de leitura terão sucesso).

Não pode usar este construtor para abrir ficheiros apenas de leitura; em vez disso, deve usar um construtor que aceite um FileAccess parâmetro com o valor definido como FileAccess.Read.

O tamanho do buffer é definido para o padrão de 4096 bytes (4 KB).

Note

path não é necessário que seja um ficheiro armazenado em disco; Pode ser qualquer parte de um sistema que suporte o acesso através de streams. Por exemplo, dependendo do sistema, esta classe pode aceder a um dispositivo físico.

CanSeek é true para todos FileStream os objetos que encapsulam ficheiros. Se path indica um dispositivo que não suporta a procura, a CanSeek propriedade sobre o resultado FileStream é false. Para obter informações adicionais, consulte CanSeek.

FileShare.Read é o padrão para aqueles FileStream construtores sem parâmetro FileShare .

Para construtores sem parâmetro FileAccess , se o mode parâmetro estiver definido para Append, Write é o acesso padrão. Caso contrário, o acesso é definido para ReadWrite.

Atenção

Quando se compila um conjunto de personagens com um determinado cenário cultural e se recuperam essas mesmas personagens com um cenário cultural diferente, as personagens podem não ser interpretáveis e podem causar uma exceção.

Para obter uma lista de operações comuns de arquivos e diretórios, consulte Tarefas comuns de E/S.

Ver também

Aplica-se a

FileStream(IntPtr, FileAccess)

Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs
Origem:
FileStream.cs

Atenção

This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access) instead.

Atenção

This constructor has been deprecated. Please use new FileStream(SafeFileHandle handle, FileAccess access) instead. https://go.microsoft.com/fwlink/?linkid=14202

Atenção

This constructor has been deprecated. Please use new FileStream(SafeFileHandle handle, FileAccess access) instead. http://go.microsoft.com/fwlink/?linkid=14202

Inicializa uma nova instância da FileStream classe para o handle de ficheiro especificado, com a permissão de leitura/escrita especificada.

public:
 FileStream(IntPtr handle, System::IO::FileAccess access);
[System.Obsolete("This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access) instead.")]
public FileStream(IntPtr handle, System.IO.FileAccess access);
[System.Obsolete("This constructor has been deprecated.  Please use new FileStream(SafeFileHandle handle, FileAccess access) instead.  https://go.microsoft.com/fwlink/?linkid=14202")]
public FileStream(IntPtr handle, System.IO.FileAccess access);
[System.Obsolete("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, System.IO.FileAccess access);
public FileStream(IntPtr handle, System.IO.FileAccess access);
[<System.Obsolete("This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access) instead.")>]
new System.IO.FileStream : nativeint * System.IO.FileAccess -> System.IO.FileStream
[<System.Obsolete("This constructor has been deprecated.  Please use new FileStream(SafeFileHandle handle, FileAccess access) instead.  https://go.microsoft.com/fwlink/?linkid=14202")>]
new System.IO.FileStream : nativeint * System.IO.FileAccess -> System.IO.FileStream
[<System.Obsolete("This constructor has been deprecated.  Please use new FileStream(SafeFileHandle handle, FileAccess access) instead.  http://go.microsoft.com/fwlink/?linkid=14202")>]
new System.IO.FileStream : nativeint * System.IO.FileAccess -> System.IO.FileStream
new System.IO.FileStream : nativeint * System.IO.FileAccess -> System.IO.FileStream
Public Sub New (handle As IntPtr, access As FileAccess)

Parâmetros

handle
IntPtr

nativeint

Um handle de ficheiro para o ficheiro que o objeto atual FileStream irá encapsular.

access
FileAccess

Uma combinação bit a bit dos valores de enumeração que define as CanRead propriedades e CanWrite do FileStream objeto.

Atributos

Exceções

access não é um corpo de FileAccess.

O interlocutor não tem a permissão necessária.

Ocorreu um erro de E/S, como um erro de disco.

-ou-

O riacho foi encerrado.

O access pedido não é permitido pelo sistema operativo para o handle de ficheiro especificado, como quando access is Write or ReadWrite e o handle de ficheiro está definido para acesso apenas de leitura.

Observações

Quando Close é chamado, o handle também é fechado e a contagem de handle do ficheiro é decrementada.

FileStream assume que tem controlo exclusivo sobre a alça. Ler, escrever ou procurar enquanto FileStream alguém também segura uma alça pode resultar em corrupção de dados. Para segurança dos dados, ligue Flush antes de usar o handle e evite chamar quaisquer métodos que não Close sejam depois de terminar de usar o handle.

Atenção

Quando se compila um conjunto de personagens com um determinado cenário cultural e se recuperam essas mesmas personagens com um cenário cultural diferente, as personagens podem não ser interpretáveis e podem causar uma exceção.

FileShare.Read é o padrão para aqueles FileStream construtores sem parâmetro FileShare .

Para obter uma lista de operações comuns de arquivos e diretórios, consulte Tarefas comuns de E/S.

Ver também

Aplica-se a