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 FileStream objetos. 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 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. Nas chamadas subsequentes, você deve ligar Refresh para obter a cópia mais recente das informações.

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 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 verificação 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íficosFileInfo, como Open, OpenRead, OpenText, ou CreateTextCreate.

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.

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

  • Recupera Length o tamanho de um arquivo.

  • Recupera Name o nome de um arquivo.

Construtores

Nome Description
FileInfo(String)

Inicializa uma nova instância da FileInfo classe, que atua como um wrapper para um caminho de arquivo.

Campos

Nome Description
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

Nome Description
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 do 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 ou FullNamenull 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

Nome Description
AppendText()

Cria um StreamWriter que acrescenta texto ao arquivo representado por essa instância do FileInfo.

CopyTo(String, Boolean)

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

CopyTo(String)

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

Create()

Cria um arquivo.

CreateAsHardLink(String)

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 FileStream objetos. Essa classe não pode ser herdada.

CreateAsSymbolicLink(String)

Cria um link simbólico localizado em 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 novo arquivo de texto.

Decrypt()

Descriptografa um arquivo que foi criptografado pela conta atual usando o Encrypt() método.

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 FileSecurity objeto que encapsula as entradas acl (lista de controle de acesso) para o arquivo descrito pelo objeto atual FileInfo .

GetAccessControl(AccessControlSections)

Obtém um FileSecurity objeto que encapsula o tipo especificado de entradas acl (lista de controle de acesso) para o arquivo descrito pelo objeto atual FileInfo .

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 SerializationInfo objeto 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 atual MarshalByRefObject .

(Herdado de MarshalByRefObject)
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.

MoveTo(String)

Move um arquivo especificado para um novo local, fornecendo a opção para especificar um novo nome de arquivo.

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, FileAccess)

Abre um arquivo no modo especificado com acesso de leitura, gravação ou leitura/gravação.

Open(FileMode)

Abre um arquivo no modo especificado.

Open(FileStreamOptions)

Inicializa uma nova instância da classe com o modo de FileStream 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 somente leitura FileStream.

OpenText()

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

OpenWrite()

Cria um somente FileStreamgravação.

Refresh()

Atualiza o estado do objeto.

(Herdado de FileSystemInfo)
Replace(String, String, Boolean)

Substitui o conteúdo de um arquivo especificado pelo arquivo descrito pelo objeto atual FileInfo , excluindo o arquivo original e criando um backup do arquivo substituído. Também especifica se os erros de mesclagem devem ser ignorados.

Replace(String, String)

Substitui o conteúdo de um arquivo especificado pelo arquivo descrito pelo objeto atual FileInfo , excluindo o arquivo original e criando um backup do arquivo substituído.

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 FileSecurity objeto ao arquivo descrito pelo objeto atual FileInfo .

ToString()

Retorna o caminho original que foi passado para o FileInfo construtor. Use a propriedade ou Name o FullName caminho completo ou o nome do arquivo.

ToString()

Retorna o caminho original. Use as propriedades ou Name o FullName caminho completo ou o nome do arquivo/diretório.

(Herdado de FileSystemInfo)

Métodos de Extensão

Nome Description
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, AccessControlSections)

Retorna as informações de segurança de um arquivo.

GetAccessControl(FileInfo)

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