FileStream Construtores
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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(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(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(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.
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.
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.
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.
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.
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.
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
- InvalidPathChars
- E/S de arquivo e fluxo
- Como: Ler texto de um arquivo
- Como: Gravar texto em um arquivo
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.
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.