FileInfo Classe

Definição

Fornece propriedades e métodos de instância para a criação, cópia, exclusão, deslocamento e abertura de arquivos, além de ajudar 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 membros main da FileInfo classe .

Quando as propriedades são recuperadas pela primeira vez, FileInfo chama o Refresh método e armazena em cache informações sobre o arquivo. Em 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 FileInfo classe para operações típicas, como copiar, mover, renomear, criar, abrir, excluir e acrescentar a 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 File classe, pois uma marcar de segurança nem sempre será necessária.

Muitos dos FileInfo métodos 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 específicos FileInfo , 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 FileInfo métodos.

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.

Observação

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 está 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 de Nomenclatura Universal) 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 FileInfo classe 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 Directory propriedade recupera um objeto que representa o diretório pai de um arquivo.

  • A DirectoryName propriedade recupera o caminho completo do diretório pai de um arquivo.

  • A Exists propriedade verifica a presença de um arquivo antes de operar nele.

  • A IsReadOnly propriedade 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 ele 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 a hora 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 existe um arquivo.

Extension

Obtém a parte de extensão do nome do arquivo, incluindo o ponto . à esquerda, mesmo que seja o nome de arquivo inteiro ou uma cadeia de caracteres vazia se nenhuma extensão estiver presente.

(Herdado de FileSystemInfo)
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 o diretório atual foi acessado pela última vez.

(Herdado de FileSystemInfo)
LastAccessTimeUtc

Obtém ou define a hora, no 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 o diretório atual foi usado para gravação pela última vez.

(Herdado de FileSystemInfo)
LastWriteTimeUtc

Obtém ou define a hora, em UTC (Tempo Universal Coordenado), em que 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 null se essa FileSystemInfo instância não representa um link.

(Herdado de FileSystemInfo)
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 o texto ao arquivo representado por essa instância do FileInfo.

CopyTo(String)

Copia um arquivo existente em um novo arquivo, não permitindo a substituição de um arquivo existente.

CopyTo(String, Boolean)

Copia um arquivo existente em um novo arquivo, permitindo a substituição de um arquivo existente.

Create()

Cria um arquivo.

CreateAsSymbolicLink(String)

Cria um link simbólico localizado no FullName que aponta para o especificado pathToTarget.

(Herdado de FileSystemInfo)
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 arquivo de texto.

Decrypt()

Descriptografa um arquivo que foi 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 de ACL (lista de controle de acesso) do arquivo descrito pelo objeto FileInfo atual.

GetAccessControl(AccessControlSections)

Obtém um objeto FileSecurity que encapsula o tipo especificado de entradas de ACL (lista de controle de acesso) do 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 ciclo de vida para esta 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 para essa instância.

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(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, oferecendo a opção de especificar um novo nome de arquivo.

MoveTo(String, Boolean)

Move um arquivo especificado para uma nova localização, fornecendo as opções para especificar um novo nome de arquivo e substituir o arquivo de destino, caso ele já exista.

Open(FileMode)

Abre um arquivo no modo especificado.

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

OpenRead()

Cria um FileStream somente leitura.

OpenText()

Cria um StreamReader com codificação UTF8 que lê de um arquivo de texto existente.

OpenWrite()

Cria um FileStream somente 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-se a entradas da ACL (lista de controle de acesso) descritas por um objeto FileSecurity para o arquivo descrito pelo objeto FileInfo atual.

ToString()

Retorna o caminho original passado para o construtor FileInfo. Use a FullName propriedade 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 o nome do arquivo/do diretório.

(Herdado de FileSystemInfo)

Métodos de Extensão

Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity)

Cria um fluxo de arquivos, garantindo que ele seja criado com as propriedades e as configurações 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.

Aplica-se a

Confira também