FileInfo.Open Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Abre um arquivo com diversos privilégios de leitura/gravação e de compartilhamento.
Sobrecargas
Open(FileMode) |
Abre um arquivo no modo especificado. |
Open(FileStreamOptions) |
Inicializa uma nova instância da classe com o modo de FileStream criação especificado, permissão de leitura/gravação e compartilhamento, o acesso que outros FileStreams podem ter ao mesmo arquivo, o tamanho do buffer, opções de arquivo adicionais e o tamanho da alocação. |
Open(FileMode, FileAccess) |
Abre um arquivo no modo especificado com o acesso de leitura, gravação ou leitura/gravação. |
Open(FileMode, FileAccess, FileShare) |
Abre um arquivo no modo especificado com acesso de leitura, gravação ou leitura/gravação e a opção de compartilhamento especificada. |
Open(FileMode)
- Origem:
- FileInfo.cs
- Origem:
- FileInfo.cs
- Origem:
- FileInfo.cs
Abre um arquivo no modo especificado.
public:
System::IO::FileStream ^ Open(System::IO::FileMode mode);
public System.IO.FileStream Open (System.IO.FileMode mode);
member this.Open : System.IO.FileMode -> System.IO.FileStream
Public Function Open (mode As FileMode) As FileStream
Parâmetros
- mode
- FileMode
Uma constante FileMode que especifica o modo (por exemplo, Open
ou Append
) no qual o arquivo será aberto.
Retornos
Um arquivo aberto no modo especificado, com acesso de leitura/gravação não compartilhado.
Exceções
O arquivo não foi encontrado.
O arquivo é somente leitura ou é um diretório.
O caminho especificado é inválido, por exemplo, ele está em uma unidade não mapeada.
O arquivo já está aberto.
Exemplos
O exemplo a seguir abre um arquivo, adiciona algumas informações ao arquivo e lê o arquivo.
using namespace System;
using namespace System::IO;
using namespace System::Text;
int main()
{
String^ path = "c:\\MyTest.txt";
FileInfo^ fi = gcnew FileInfo( path );
// Delete the file if it exists.
if ( !fi->Exists )
{
//Create the file.
FileStream^ fs = fi->Create();
try
{
array<Byte>^info = (gcnew UTF8Encoding( true ))->GetBytes( "This is some text in the file." );
//Add some information to the file.
fs->Write( info, 0, info->Length );
}
finally
{
if ( fs )
delete (IDisposable^)fs;
}
}
//Open the stream and read it back.
FileStream^ fs = fi->Open( FileMode::Open );
try
{
array<Byte>^b = gcnew array<Byte>(1024);
UTF8Encoding^ temp = gcnew UTF8Encoding( true );
while ( fs->Read( b, 0, b->Length ) > 0 )
{
Console::WriteLine( temp->GetString( b ) );
}
}
finally
{
if ( fs )
delete (IDisposable^)fs;
}
}
//This code produces output similar to the following;
//results may vary based on the computer/file structure/etc.:
//
//This is some text in the file.
//
//
//
//
//
//
//
//
//
//
//
//
//
using System;
using System.IO;
using System.Text;
class Test
{
public static void Main()
{
string path = @"c:\MyTest.txt";
FileInfo fi = new FileInfo(path);
// Delete the file if it exists.
if (!fi.Exists)
{
//Create the file.
using (FileStream fs = fi.Create())
{
Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
//Add some information to the file.
fs.Write(info, 0, info.Length);
}
}
//Open the stream and read it back.
using (FileStream fs = fi.Open(FileMode.Open))
{
byte[] b = new byte[1024];
UTF8Encoding temp = new UTF8Encoding(true);
while (fs.Read(b,0,b.Length) > 0)
{
Console.WriteLine(temp.GetString(b));
}
}
}
}
//This code produces output similar to the following;
//results may vary based on the computer/file structure/etc.:
//
//This is some text in the file.
//
//
//
//
//
//
//
//
//
//
//
//
Imports System.IO
Imports System.Text
Public Class Test
Public Shared Sub Main()
Dim path As String = "c:\temp\MyTest.txt"
Dim fi As FileInfo = New FileInfo(path)
Dim fs As FileStream
' Delete the file if it exists.
If fi.Exists = False Then
'Create the file.
fs = fi.Create()
Dim info As Byte() = New UTF8Encoding(True).GetBytes("This is some text in the file.")
'Add some information to the file.
fs.Write(info, 0, info.Length)
fs.Close()
End If
'Open the stream and read it back.
fs = fi.Open(FileMode.Open)
Dim b(1023) As Byte
Dim temp As UTF8Encoding = New UTF8Encoding(True)
Do While fs.Read(b, 0, b.Length) > 0
Console.WriteLine(temp.GetString(b))
Loop
fs.Close()
End Sub
End Class
'This code produces output similar to the following;
'results may vary based on the computer/file structure/etc.:
'
'This is some text in the file.
'
'
'
'
'
'
'
'
'
'
'
'
Confira também
Aplica-se a
Open(FileStreamOptions)
- Origem:
- FileInfo.cs
- Origem:
- FileInfo.cs
- Origem:
- FileInfo.cs
Inicializa uma nova instância da classe com o modo de FileStream criação especificado, permissão de leitura/gravação e compartilhamento, o acesso que outros FileStreams podem ter ao mesmo arquivo, o tamanho do buffer, opções de arquivo adicionais e o tamanho da alocação.
public:
System::IO::FileStream ^ Open(System::IO::FileStreamOptions ^ options);
public System.IO.FileStream Open (System.IO.FileStreamOptions options);
member this.Open : System.IO.FileStreamOptions -> System.IO.FileStream
Public Function Open (options As FileStreamOptions) As FileStream
Parâmetros
- options
- FileStreamOptions
Um objeto que descreve parâmetros opcionais FileStream a serem usados.
Retornos
Um FileStream que encapsula o arquivo aberto.
Comentários
FileStream(String, FileStreamOptions) para obter informações sobre exceções.
Aplica-se a
Open(FileMode, FileAccess)
- Origem:
- FileInfo.cs
- Origem:
- FileInfo.cs
- Origem:
- FileInfo.cs
Abre um arquivo no modo especificado com o acesso de leitura, gravação ou leitura/gravação.
public:
System::IO::FileStream ^ Open(System::IO::FileMode mode, System::IO::FileAccess access);
public System.IO.FileStream Open (System.IO.FileMode mode, System.IO.FileAccess access);
member this.Open : System.IO.FileMode * System.IO.FileAccess -> System.IO.FileStream
Public Function Open (mode As FileMode, access As FileAccess) As FileStream
Parâmetros
- mode
- FileMode
Uma constante FileMode que especifica o modo (por exemplo, Open
ou Append
) no qual o arquivo será aberto.
- access
- FileAccess
Uma constante FileAccess que especifica se o arquivo será aberto com o acesso ao arquivo Read
, Write
ou ReadWrite
.
Retornos
Um objeto FileStream aberto no modo e acesso especificados e não compartilhado.
Exceções
O chamador não tem a permissão necessária.
O arquivo não foi encontrado.
Name é somente leitura ou é um diretório.
O caminho especificado é inválido, por exemplo, ele está em uma unidade não mapeada.
O arquivo já está aberto.
Name está vazia ou contém apenas espaços em branco.
Um ou mais argumentos é nulo.
Exemplos
O exemplo a seguir abre um arquivo como somente leitura e lê do arquivo.
using namespace System;
using namespace System::IO;
using namespace System::Text;
int main()
{
String^ path = "c:\\MyTest.txt";
FileInfo^ fi = gcnew FileInfo( path );
// Delete the file if it exists.
if ( !fi->Exists )
{
//Create the file.
FileStream^ fs = fi->Create();
try
{
array<Byte>^info = (gcnew UTF8Encoding( true ))->GetBytes( "This is some text in the file." );
//Add some information to the file.
fs->Write( info, 0, info->Length );
}
finally
{
if ( fs )
delete (IDisposable^)fs;
}
}
//Open the stream and read it back.
FileStream^ fs = fi->Open( FileMode::Open, FileAccess::Read );
try
{
array<Byte>^b = gcnew array<Byte>(1024);
UTF8Encoding^ temp = gcnew UTF8Encoding( true );
while ( fs->Read( b, 0, b->Length ) > 0 )
{
Console::WriteLine( temp->GetString( b ) );
}
try
{
//Try to write to the file.
fs->Write( b, 0, b->Length );
}
catch ( Exception^ e )
{
Console::WriteLine( "Writing was disallowed, as expected: {0}", e );
}
}
finally
{
if ( fs )
delete (IDisposable^)fs;
}
}
//This code produces output similar to the following;
//results may vary based on the computer/file structure/etc.:
//
//This is some text in the file.
//
//
//
//
//
//
//
//
//
//
//
//
//Writing was disallowed, as expected: System.NotSupportedException: Stream does
//not support writing.
// at System.IO.__Error.WriteNotSupported()
// at System.IO.FileStream.Write(Byte[] array, Int32 offset, Int32 count)
// at main() in c:\documents and settings\MyComputer\my documents\
//visual studio 2005\projects\finfo open2\finfo open2\
//cpp_console_application.cpp:line 46
using System;
using System.IO;
using System.Text;
class Test
{
public static void Main()
{
string path = @"c:\MyTest.txt";
FileInfo fi = new FileInfo(path);
// Delete the file if it exists.
if (!fi.Exists)
{
//Create the file.
using (FileStream fs = fi.Create())
{
Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
//Add some information to the file.
fs.Write(info, 0, info.Length);
}
}
//Open the stream and read it back.
using (FileStream fs = fi.Open(FileMode.Open, FileAccess.Read))
{
byte[] b = new byte[1024];
UTF8Encoding temp = new UTF8Encoding(true);
while (fs.Read(b,0,b.Length) > 0)
{
Console.WriteLine(temp.GetString(b));
}
try
{
//Try to write to the file.
fs.Write(b,0,b.Length);
}
catch (Exception e)
{
Console.WriteLine("Writing was disallowed, as expected: {0}",
e.ToString());
}
}
}
}
//This code produces output similar to the following;
//results may vary based on the computer/file structure/etc.:
//
//This is some text in the file.
//
//
//
//
//
//
//
//
//
//
//
//
//Writing was disallowed, as expected: System.NotSupportedException: Stream does
//not support writing.
// at System.IO.__Error.WriteNotSupported()
// at System.IO.FileStream.Write(Byte[] array, Int32 offset, Int32 count)
// at Test.Main() in C:\Documents and Settings\My Computer\My Documents\
//Visual Studio 2005\Projects\finfo open2\finfo open2\Program.cs:line 39
imports System.IO
imports System.Text
Public Class Test
Public Shared Sub Main()
Dim path As String = "c:\MyTest.txt"
Dim fi As FileInfo = new FileInfo(path)
Dim fs As FileStream
' Delete the file if it exists.
If fi.Exists = False
'Create the file.
fs = fi.Create()
Dim info As Byte() = _
New UTF8Encoding(true).GetBytes( _
"This is some text in the file.")
'Add some information to the file.
fs.Write(info, 0, info.Length)
fs.Close()
End If
'Open the stream and read it back.
fs = fi.Open(FileMode.Open, FileAccess.Read)
Dim b(1023) As byte
Dim temp As UTF8Encoding = New UTF8Encoding(true)
Do While fs.Read(b,0,b.Length) > 0
Console.WriteLine(temp.GetString(b))
Loop
Try
fs.Write(b,0,b.Length)
Catch e As Exception
Console.WriteLine("Writing was disallowed, as expected: {0}", e.ToString())
End Try
fs.Close()
End Sub
End Class
'This code produces output similar to the following;
'results may vary based on the computer/file structure/etc.:
'
'This is some text in the file.
'
'
'
'
'
'
'
'
'
'
'
'
'Writing was disallowed, as expected: System.NotSupportedException: Stream does
'not support writing.
' at System.IO.__Error.WriteNotSupported()
' at System.IO.FileStream.Write(Byte[] array, Int32 offset, Int32 count)
' at VB_Console_Application.Test.Main() in C:\Documents and Settings\MyComputer
'\My Documents\Visual Studio 2005\Projects\finfo open2\finfo open2\Module1.vb:line 34
'
Confira também
Aplica-se a
Open(FileMode, FileAccess, FileShare)
- Origem:
- FileInfo.cs
- Origem:
- FileInfo.cs
- Origem:
- FileInfo.cs
Abre um arquivo no modo especificado com acesso de leitura, gravação ou leitura/gravação e a opção de compartilhamento especificada.
public:
System::IO::FileStream ^ Open(System::IO::FileMode mode, System::IO::FileAccess access, System::IO::FileShare share);
public System.IO.FileStream Open (System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share);
member this.Open : System.IO.FileMode * System.IO.FileAccess * System.IO.FileShare -> System.IO.FileStream
Public Function Open (mode As FileMode, access As FileAccess, share As FileShare) As FileStream
Parâmetros
- mode
- FileMode
Uma constante FileMode que especifica o modo (por exemplo, Open
ou Append
) no qual o arquivo será aberto.
- access
- FileAccess
Uma constante FileAccess que especifica se o arquivo será aberto com o acesso ao arquivo Read
, Write
ou ReadWrite
.
- share
- FileShare
Uma constante FileShare que especifica o tipo de acesso que outros objetos FileStream
têm ao arquivo.
Retornos
Um objeto FileStream aberto com o modo especificado, o acesso e as opções de compartilhamento.
Exceções
O chamador não tem a permissão necessária.
O arquivo não foi encontrado.
Name é somente leitura ou é um diretório.
O caminho especificado é inválido, por exemplo, ele está em uma unidade não mapeada.
O arquivo já está aberto.
Name está vazia ou contém apenas espaços em branco.
Um ou mais argumentos é nulo.
Exemplos
O exemplo a seguir demonstra a abertura de um arquivo para leitura e gravação, mas não permite o acesso a outros usuários ou processos.
using namespace System;
using namespace System::IO;
int main()
{
// Open an existing file, or create a new one.
FileInfo^ fi = gcnew FileInfo( "temp.txt" );
// Open the file just specified such that no one else can use it.
FileStream^ fs = fi->Open( FileMode::OpenOrCreate, FileAccess::ReadWrite, FileShare::None );
// Create another reference to the same file.
FileInfo^ nextfi = gcnew FileInfo( "temp.txt" );
try
{
// Try opening the same file, which was locked by the previous process.
nextfi->Open( FileMode::OpenOrCreate, FileAccess::Read );
Console::WriteLine( "The file was not locked, and was opened by a second process." );
}
catch ( IOException^ )
{
Console::WriteLine( "The file could not be opened because it was locked by another process." );
}
catch ( Exception^ e )
{
Console::WriteLine( e );
}
// Close the file so it can be deleted.
fs->Close();
}
//This code produces output similar to the following;
//results may vary based on the computer/file structure/etc.:
//
//The file could not be opened because it was locked by another process.
using System;
using System.IO;
public class OpenTest
{
public static void Main()
{
// Open an existing file, or create a new one.
FileInfo fi = new FileInfo("temp.txt");
// Open the file just specified such that no one else can use it.
FileStream fs = fi.Open( FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None );
// Create another reference to the same file.
FileInfo nextfi = new FileInfo("temp.txt");
try
{
// Try opening the same file, which was locked by the previous process.
nextfi.Open( FileMode.OpenOrCreate, FileAccess.Read );
Console.WriteLine("The file was not locked, and was opened by a second process.");
}
catch (IOException)
{
Console.WriteLine("The file could not be opened because it was locked by another process.");
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
// Close the file so it can be deleted.
fs.Close();
}
}
//This code produces output similar to the following;
//results may vary based on the computer/file structure/etc.:
//
//The file could not be opened because it was locked by another process.
Imports System.IO
Public Class OpenTest
Public Shared Sub Main()
' Open an existing file, or create a new one.
Dim fi As New FileInfo("temp.txt")
' Open the file just specified such that no one else can use it.
Dim fs As FileStream = fi.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None)
' Create another reference to the same file.
Dim nextfi As New FileInfo("temp.txt")
Try
' Try opening the same file, which was locked by the previous process.
nextfi.Open(FileMode.OpenOrCreate, FileAccess.Read)
Console.WriteLine("The file was not locked, and was opened by a second process.")
Catch i as IOException
Console.WriteLine(i.ToString())
Catch e As Exception
Console.WriteLine(e.ToString())
End Try
' Close the file so it can be deleted.
fs.Close()
End Sub
End Class
'This code produces output similar to the following;
'results may vary based on the computer/file structure/etc.:
'
'System.IO.IOException: The process cannot access the file
''C:\Documents and Settings\mydirectory\My Documents\Visual Studio 2005
'\Projects\fileinfoopen\fileinfoopen\obj\Release\temp.txt'
'because it is being used by another process.
'at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
'at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access,
'Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions
'options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
'at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access,
'FileShare share) at System.IO.FileInfo.Open(FileMode mode, FileAccess access)
'at VB_Console_Application.OpenTest.Main() in C:\Documents and Settings
'\mydirectory\My Documents\Visual Studio 2005\Projects\VB_Console_Application
'\VB_Console_Application\Module1.vb:line 19