Compartilhar via


FileInfo Classe

Definição

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 . 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 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 null se essa instância FileSystemInfo não representar 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 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 pathToTargetespecificado.

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

Aplica-se a

Confira também