FileInfo Classe
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.
Fornece propriedades e métodos de instância para a criação, cópia, exclusão, movimentação e abertura de arquivos e ajuda na criação de objetos FileStream. Essa classe não pode ser herdada.
public ref class FileInfo sealed : System::IO::FileSystemInfo
public sealed class FileInfo : System.IO.FileSystemInfo
[System.Serializable]
public sealed class FileInfo : System.IO.FileSystemInfo
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class FileInfo : System.IO.FileSystemInfo
type FileInfo = class
inherit FileSystemInfo
[<System.Serializable>]
type FileInfo = class
inherit FileSystemInfo
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type FileInfo = class
inherit FileSystemInfo
Public NotInheritable Class FileInfo
Inherits FileSystemInfo
- Herança
- Herança
- Atributos
Exemplos
O exemplo a seguir demonstra alguns dos principais membros da classe FileInfo
.
Quando as propriedades são recuperadas pela primeira vez, FileInfo chama o método Refresh e armazena em cache informações sobre o arquivo. Nas chamadas subsequentes, você deve chamar Refresh para obter a cópia mais recente das informações.
using namespace System;
using namespace System::IO;
int main()
{
String^ path = Path::GetTempFileName();
FileInfo^ fi1 = gcnew FileInfo( path );
//Create a file to write to.
StreamWriter^ sw = fi1->CreateText();
try
{
sw->WriteLine( "Hello" );
sw->WriteLine( "And" );
sw->WriteLine( "Welcome" );
}
finally
{
if ( sw )
delete (IDisposable^)sw;
}
//Open the file to read from.
StreamReader^ sr = fi1->OpenText();
try
{
String^ s = "";
while ( s = sr->ReadLine() )
{
Console::WriteLine( s );
}
}
finally
{
if ( sr )
delete (IDisposable^)sr;
}
try
{
String^ path2 = Path::GetTempFileName();
FileInfo^ fi2 = gcnew FileInfo( path2 );
//Ensure that the target does not exist.
fi2->Delete();
//Copy the file.
fi1->CopyTo( path2 );
Console::WriteLine( "{0} was copied to {1}.", path, path2 );
//Delete the newly created file.
fi2->Delete();
Console::WriteLine( "{0} was successfully deleted.", path2 );
}
catch ( Exception^ e )
{
Console::WriteLine( "The process failed: {0}", e );
}
}
using System;
using System.IO;
class Test
{
public static void Main()
{
string path = Path.GetTempFileName();
var fi1 = new FileInfo(path);
// Create a file to write to.
using (StreamWriter sw = fi1.CreateText())
{
sw.WriteLine("Hello");
sw.WriteLine("And");
sw.WriteLine("Welcome");
}
// Open the file to read from.
using (StreamReader sr = fi1.OpenText())
{
var s = "";
while ((s = sr.ReadLine()) != null)
{
Console.WriteLine(s);
}
}
try
{
string path2 = Path.GetTempFileName();
var fi2 = new FileInfo(path2);
// Ensure that the target does not exist.
fi2.Delete();
// Copy the file.
fi1.CopyTo(path2);
Console.WriteLine($"{path} was copied to {path2}.");
// Delete the newly created file.
fi2.Delete();
Console.WriteLine($"{path2} was successfully deleted.");
}
catch (Exception e)
{
Console.WriteLine($"The process failed: {e.ToString()}");
}
}
}
Imports System.IO
Public Class Test
Public Shared Sub Main()
Dim path1 As String = Path.GetTempFileName()
Dim path2 As String = Path.GetTempFileName()
Dim fi As New FileInfo(path1)
' Create a file to write to.
Using sw As StreamWriter = fi.CreateText()
sw.WriteLine("Hello")
sw.WriteLine("And")
sw.WriteLine("Welcome")
End Using
Try
' Open the file to read from.
Using sr As StreamReader = fi.OpenText()
Do While sr.Peek() >= 0
Console.WriteLine(sr.ReadLine())
Loop
End Using
Dim fi2 As New FileInfo(path2)
' Ensure that the target does not exist.
fi2.Delete()
' Copy the file.
fi.CopyTo(path2)
Console.WriteLine($"{path1} was copied to {path2}.")
' Delete the newly created file.
fi2.Delete()
Console.WriteLine($"{path2} was successfully deleted.")
Catch e As Exception
Console.WriteLine($"The process failed: {e.ToString()}.")
End Try
End Sub
End Class
Este exemplo produz uma saída semelhante à seguinte.
Hello
And
Welcome
C:\Users\userName\AppData\Local\Temp\tmp70AB.tmp was copied to C:\Users\userName\AppData\Local\Temp\tmp70CB.tmp.
C:\Users\userName\AppData\Local\Temp\tmp70CB.tmp was successfully deleted.
Comentários
Use a classe FileInfo para operações típicas, como copiar, mover, renomear, criar, abrir, excluir e acrescentar arquivos.
Se você estiver executando várias operações no mesmo arquivo, poderá ser mais eficiente usar FileInfo métodos de instância em vez dos métodos estáticos correspondentes da classe File, pois nem sempre uma verificação de segurança será necessária.
Muitos dos métodos FileInfo retornam outros tipos de E/S quando você cria ou abre arquivos. Você pode usar esses outros tipos para manipular ainda mais um arquivo. Para obter mais informações, consulte membros FileInfo específicos, como Open, OpenRead, OpenText, CreateTextou Create.
Por padrão, o acesso completo de leitura/gravação a novos arquivos é concedido a todos os usuários.
A tabela a seguir descreve as enumerações usadas para personalizar o comportamento de vários métodos de FileInfo.
Enumeração | Descrição |
---|---|
FileAccess | Especifica o acesso de leitura e gravação a um arquivo. |
FileShare | Especifica o nível de acesso permitido para um arquivo que já está em uso. |
FileMode | Especifica se o conteúdo de um arquivo existente é preservado ou substituído e se as solicitações para criar um arquivo existente causam uma exceção. |
Nota
Em membros que aceitam um caminho como uma cadeia de caracteres de entrada, esse caminho deve ser bem formado ou uma exceção é gerada. Por exemplo, se um caminho for totalmente qualificado, mas começar com um espaço, o caminho não será cortado em métodos da classe. Portanto, o caminho é malformado e uma exceção é gerada. Da mesma forma, um caminho ou uma combinação de caminhos não pode ser totalmente qualificado duas vezes. Por exemplo, "c:\temp c:\windows" também gera uma exceção na maioria dos casos. Verifique se os caminhos estão bem formados ao usar métodos que aceitam uma cadeia de caracteres de caminho.
Em membros que aceitam um caminho, o caminho pode se referir a um arquivo ou apenas a um diretório. O caminho especificado também pode se referir a um caminho relativo ou a um caminho UNC (Convenção Universal de Nomenclatura) para um servidor e um nome de compartilhamento. Por exemplo, todos os seguintes são caminhos aceitáveis:
"c:\\MyDir\\MyFile.txt" em C#ou "c:\MyDir\MyFile.txt" no Visual Basic.
"c:\\MyDir" em C#ou "c:\MyDir" no Visual Basic.
"MyDir\\MySubdir" em C#ou "MyDir\MySubDir" no Visual Basic.
"\\\\MyServer\\MyShare" em C#ou "\\MyServer\MyShare" no Visual Basic.
A classe FileInfo fornece as propriedades a seguir que permitem recuperar informações sobre um arquivo. Para obter um exemplo de como usar cada propriedade, consulte as páginas de propriedades.
A propriedade Directory recupera um objeto que representa o diretório pai de um arquivo.
A propriedade DirectoryName recupera o caminho completo do diretório pai de um arquivo.
A propriedade Exists verifica a presença de um arquivo antes de operar nele.
A propriedade IsReadOnly recupera ou define um valor que especifica se um arquivo pode ser modificado.
O Length recupera o tamanho de um arquivo.
O Name recupera o nome de um arquivo.
Construtores
FileInfo(String) |
Inicializa uma nova instância da classe FileInfo, que atua como um wrapper para um caminho de arquivo. |
Campos
FullPath |
Representa o caminho totalmente qualificado do diretório ou arquivo. (Herdado de FileSystemInfo) |
OriginalPath |
O caminho originalmente especificado pelo usuário, seja relativo ou absoluto. (Herdado de FileSystemInfo) |
Propriedades
Attributes |
Obtém ou define os atributos para o arquivo ou diretório atual. (Herdado de FileSystemInfo) |
CreationTime |
Obtém ou define a hora de criação do arquivo ou diretório atual. (Herdado de FileSystemInfo) |
CreationTimeUtc |
Obtém ou define o tempo de criação, em UTC (tempo universal coordenado), do arquivo ou diretório atual. (Herdado de FileSystemInfo) |
Directory |
Obtém uma instância do diretório pai. |
DirectoryName |
Obtém uma cadeia de caracteres que representa o caminho completo do diretório. |
Exists |
Obtém um valor que indica se um arquivo existe. |
Extension |
Obtém a parte de extensão do nome do arquivo, incluindo o ponto à esquerda |
FullName |
Obtém o caminho completo do diretório ou arquivo. (Herdado de FileSystemInfo) |
IsReadOnly |
Obtém ou define um valor que determina se o arquivo atual é somente leitura. |
LastAccessTime |
Obtém ou define a hora em que o arquivo ou diretório atual foi acessado pela última vez. (Herdado de FileSystemInfo) |
LastAccessTimeUtc |
Obtém ou define a hora, em UTC (tempo universal coordenado), em que o arquivo ou diretório atual foi acessado pela última vez. (Herdado de FileSystemInfo) |
LastWriteTime |
Obtém ou define a hora em que o arquivo ou diretório atual foi gravado pela última vez. (Herdado de FileSystemInfo) |
LastWriteTimeUtc |
Obtém ou define a hora, em UTC (tempo universal coordenado), quando o arquivo ou diretório atual foi gravado pela última vez. (Herdado de FileSystemInfo) |
Length |
Obtém o tamanho, em bytes, do arquivo atual. |
LinkTarget |
Obtém o caminho de destino do link localizado em FullNameou |
Name |
Obtém o nome do arquivo. |
UnixFileMode |
Obtém ou define o modo de arquivo Unix para o arquivo ou diretório atual. (Herdado de FileSystemInfo) |
Métodos
AppendText() |
Cria um StreamWriter que acrescenta texto ao arquivo representado por essa instância do FileInfo. |
CopyTo(String) |
Copia um arquivo existente para um novo arquivo, não permitindo a substituição de um arquivo existente. |
CopyTo(String, Boolean) |
Copia um arquivo existente para um novo arquivo, permitindo a substituição de um arquivo existente. |
Create() |
Cria um arquivo. |
CreateAsSymbolicLink(String) |
Cria um link simbólico localizado em FullName que aponta para o |
CreateObjRef(Type) |
Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto. (Herdado de MarshalByRefObject) |
CreateText() |
Cria um StreamWriter que grava um novo arquivo de texto. |
Decrypt() |
Descriptografa um arquivo criptografado pela conta atual usando o método Encrypt(). |
Delete() |
Exclui permanentemente um arquivo. |
Encrypt() |
Criptografa um arquivo para que somente a conta usada para criptografar o arquivo possa descriptografá-lo. |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GetAccessControl() |
Obtém um objeto FileSecurity que encapsula as entradas acl (lista de controle de acesso) para o arquivo descrito pelo objeto FileInfo atual. |
GetAccessControl(AccessControlSections) |
Obtém um objeto FileSecurity que encapsula o tipo especificado de entradas acl (lista de controle de acesso) para o arquivo descrito pelo objeto FileInfo atual. |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetLifetimeService() |
Obsoleto.
Recupera o objeto de serviço de tempo de vida atual que controla a política de tempo de vida para essa instância. (Herdado de MarshalByRefObject) |
GetObjectData(SerializationInfo, StreamingContext) |
Obsoleto.
Define o objeto SerializationInfo com o nome do arquivo e informações adicionais de exceção. (Herdado de FileSystemInfo) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
InitializeLifetimeService() |
Obsoleto.
Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida dessa instância. (Herdado de MarshalByRefObject) |
MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
MemberwiseClone(Boolean) |
Cria uma cópia superficial do objeto MarshalByRefObject atual. (Herdado de MarshalByRefObject) |
MoveTo(String) |
Move um arquivo especificado para um novo local, fornecendo a opção para especificar um novo nome de arquivo. |
MoveTo(String, Boolean) |
Move um arquivo especificado para um novo local, fornecendo as opções para especificar um novo nome de arquivo e substituir o arquivo de destino se ele já existir. |
Open(FileMode) |
Abre um arquivo no modo especificado. |
Open(FileMode, FileAccess) |
Abre um arquivo no modo especificado com 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(FileStreamOptions) |
Inicializa uma nova instância da classe FileStream com o modo de criação, permissão de leitura/gravação e compartilhamento especificados, o acesso que outros FileStreams podem ter para o mesmo arquivo, o tamanho do buffer, opções de arquivo adicionais e o tamanho da alocação. |
OpenRead() |
Cria um FileStreamsomente leitura. |
OpenText() |
Cria um StreamReader com codificação UTF8 que lê de um arquivo de texto existente. |
OpenWrite() |
Cria um FileStreamsomente gravação. |
Refresh() |
Atualiza o estado do objeto. (Herdado de FileSystemInfo) |
Replace(String, String) |
Substitui o conteúdo de um arquivo especificado pelo arquivo descrito pelo objeto FileInfo atual, excluindo o arquivo original e criando um backup do arquivo substituído. |
Replace(String, String, Boolean) |
Substitui o conteúdo de um arquivo especificado pelo arquivo descrito pelo objeto FileInfo atual, excluindo o arquivo original e criando um backup do arquivo substituído. Também especifica se os erros de mesclagem devem ser ignorados. |
ResolveLinkTarget(Boolean) |
Obtém o destino do link especificado. (Herdado de FileSystemInfo) |
SetAccessControl(FileSecurity) |
Aplica entradas acl (lista de controle de acesso) descritas por um objeto FileSecurity ao arquivo descrito pelo objeto FileInfo atual. |
ToString() |
Retorna o caminho original que foi passado para o construtor FileInfo. Use a propriedade FullName ou Name para o caminho completo ou o nome do arquivo. |
ToString() |
Retorna o caminho original. Use as propriedades FullName ou Name para o caminho completo ou nome de arquivo/diretório. (Herdado de FileSystemInfo) |
Métodos de Extensão
Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) |
Cria um novo fluxo de arquivos, garantindo que ele seja criado com as propriedades e as configurações de segurança especificadas. |
GetAccessControl(FileInfo) |
Retorna as informações de segurança de um arquivo. |
GetAccessControl(FileInfo, AccessControlSections) |
Retorna as informações de segurança de um arquivo. |
SetAccessControl(FileInfo, FileSecurity) |
Altera os atributos de segurança de um arquivo existente. |