FileInfo Classe

Definição

Fornece propriedades e métodos de instância para a criação, cópia, eliminação, movimentação e abertura de ficheiros, e auxilia na criação de FileStream objetos. Esta 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 seguinte demonstra alguns dos principais membros da FileInfo turma.

Quando as propriedades são recuperadas pela primeira vez, chama FileInfo o Refresh método e armazena em cache a informação sobre o ficheiro. Nas chamadas seguintes, deve ligar Refresh para obter a cópia mais recente da informação.

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 resultados semelhantes aos seguintes.

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.

Observações

Use a FileInfo classe para operações típicas como copiar, mover, renomear, criar, abrir, eliminar e anexar ficheiros.

Se estiver a realizar múltiplas operações no mesmo ficheiro, pode ser mais eficiente usar FileInfo métodos de instância em vez dos métodos estáticos correspondentes da File classe, porque uma verificação de segurança nem sempre será necessária.

Muitos dos FileInfo métodos retornam outros tipos de E/S quando crias ou abres ficheiros. Pode usar estes outros tipos para manipular ainda mais um ficheiro. Para mais informações, veja membros específicos FileInfo como Open, OpenRead, OpenText, CreateText, ou Create.

Por defeito, é concedido acesso total de leitura/escrita a novos ficheiros a todos os utilizadores.

A tabela seguinte descreve as enumerações que são usadas para personalizar o comportamento de vários FileInfo métodos.

Enumeration Description
FileAccess Especifica o acesso de leitura e escrita a um ficheiro.
FileShare Especifica o nível de acesso permitido para um ficheiro que já está em uso.
FileMode Especifica se o conteúdo de um ficheiro existente é preservado ou sobrescrevido, e se pedidos para criar um ficheiro existente causam uma exceção.

Note

Em membros que aceitam um caminho como cadeia de entrada, esse caminho deve estar bem formado ou é levantada uma exceção. Por exemplo, se um caminho for totalmente qualificado mas começar com um espaço, o caminho não é cortado nos métodos da classe. Portanto, o caminho está mal formado e é levantada uma exceção. De forma semelhante, um caminho ou uma combinação de caminhos não pode ser totalmente qualificado duas vezes. Por exemplo, "c:\temp c:\windows" também levanta uma exceção na maioria dos casos. Certifique-se de que os seus caminhos estão bem formados ao usar métodos que aceitam uma cadeia de caminho.

Nos membros que aceitam um caminho, o caminho pode referir-se a um ficheiro ou apenas a um diretório. O caminho especificado pode também referir-se a um caminho relativo ou a um caminho da Convenção de Nomeação Universal (UNC) para um nome de servidor e partilha. Por exemplo, todos os seguintes são caminhos aceitáveis:

  • "c:\\MyDir\\MyFile.txt" em C#, ou "c:\MyDir\MyFile.txt" em Visual Basic.

  • "c:\\MyDir" em C#, ou "c:\MyDir" no Visual Basic.

  • "MyDir\\MySubdir" em C#, ou "MyDir\MySubDir" em Visual Basic.

  • "\\\\MyServer\\MyShare" em C#, ou "\\MyServer\MyShare" no Visual Basic.

A FileInfo classe fornece as seguintes propriedades que permitem obter informações sobre um ficheiro. Para 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 ficheiro.

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

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

  • A IsReadOnly propriedade recupera ou define um valor que especifica se um ficheiro pode ser modificado.

  • Recupera Length o tamanho de um ficheiro.

  • Recupera Name o nome de um ficheiro.

Construtores

Name Description
FileInfo(String)

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

Campos

Name Description
FullPath

Representa o caminho totalmente qualificado do diretório ou ficheiro.

(Herdado de FileSystemInfo)
OriginalPath

O caminho originalmente especificado pelo utilizador, seja relativo ou absoluto.

(Herdado de FileSystemInfo)

Propriedades

Name Description
Attributes

Obtém ou define os atributos do ficheiro ou diretório atual.

(Herdado de FileSystemInfo)
CreationTime

Obtém ou define a hora de criação do ficheiro ou diretório atual.

(Herdado de FileSystemInfo)
CreationTimeUtc

Obtém ou define a hora de criação, em tempo universal coordenado (UTC), do ficheiro ou diretório atual.

(Herdado de FileSystemInfo)
Directory

Obtém uma instância do diretório pai.

DirectoryName

Recebe uma string que representa o caminho completo do diretório.

Exists

Recebe um valor que indica se um ficheiro existe.

Extension

Recebe a parte de extensão do nome do ficheiro, incluindo o ponto . inicial mesmo que seja o nome completo do ficheiro, ou uma string vazia se não houver extensão.

(Herdado de FileSystemInfo)
FullName

Obtém o caminho completo do diretório ou ficheiro.

(Herdado de FileSystemInfo)
IsReadOnly

Recebe ou define um valor que determina se o ficheiro atual é apenas leitura.

LastAccessTime

Obtém ou define a hora em que o ficheiro ou diretório atual foi acedido pela última vez.

(Herdado de FileSystemInfo)
LastAccessTimeUtc

Obtém ou define a hora, em tempo universal coordenado (UTC), em que o ficheiro ou diretório atual foi acedido pela última vez.

(Herdado de FileSystemInfo)
LastWriteTime

Obtém ou define a hora em que o ficheiro ou diretório atual foi escrito pela última vez.

(Herdado de FileSystemInfo)
LastWriteTimeUtc

Obtém ou define a hora, em tempo universal coordenado (UTC), quando o ficheiro ou diretório atual foi escrito pela última vez.

(Herdado de FileSystemInfo)
Length

Obtém o tamanho, em bytes, do ficheiro atual.

Name

Obtém o nome do arquivo.

Métodos

Name Description
AppendText()

Cria um StreamWriter que acrescenta texto ao ficheiro representado por esta instância do FileInfo.

CopyTo(String, Boolean)

Copia um ficheiro existente para um novo ficheiro, permitindo a sobreposição de um ficheiro existente.

CopyTo(String)

Copia um ficheiro existente para um novo ficheiro, impedindo a sobreposição de um ficheiro existente.

Create()

Cria um ficheiro.

CreateObjRef(Type)

Cria um objeto que contém toda a informação relevante necessária para gerar um proxy usado para comunicar com um objeto remoto.

(Herdado de MarshalByRefObject)
CreateText()

Cria um StreamWriter que escreve um novo ficheiro de texto.

Decrypt()

Descifra um ficheiro que foi encriptado pela conta corrente usando o Encrypt() método.

Delete()

Apaga permanentemente um ficheiro.

Encrypt()

Encripta um ficheiro para que apenas a conta usada para encriptar o ficheiro possa desencriptá-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 da lista de controlo de acesso (ACL) para o ficheiro descrito pelo objeto atual FileInfo .

GetAccessControl(AccessControlSections)

Obtém um FileSecurity objeto que encapsula o tipo especificado de entradas da lista de controlo de acesso (ACL) para o ficheiro descrito pelo objeto atual FileInfo .

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetLifetimeService()

Recupera o objeto de serviço de tempo de vida atual que controla a política de vida útil neste caso.

(Herdado de MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)

Define o SerializationInfo objeto com o nome do ficheiro e informações adicionais de exceção.

(Herdado de FileSystemInfo)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
InitializeLifetimeService()

Obtém-se um objeto de serviço vitalício para controlar a apólice vitalícia neste caso.

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto atual MarshalByRefObject .

(Herdado de MarshalByRefObject)
MoveTo(String)

Move um ficheiro especificado para uma nova localização, oferecendo a opção de especificar um novo nome de ficheiro.

Open(FileMode, FileAccess, FileShare)

Abre um ficheiro no modo especificado com acesso de leitura, escrita ou leitura/escrita e a opção de partilha especificada.

Open(FileMode, FileAccess)

Abre um ficheiro no modo especificado com acesso de leitura, escrita ou leitura/escrita.

Open(FileMode)

Abre um ficheiro no modo especificado.

OpenRead()

Cria um arquivo somente FileStreamde leitura .

OpenText()

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

OpenWrite()

Cria um .FileStream

Refresh()

Atualiza o estado do objeto.

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

Substitui o conteúdo de um ficheiro especificado pelo ficheiro descrito pelo objeto atual FileInfo , eliminando o ficheiro original e criando uma cópia de segurança do ficheiro substituído. Também especifica se deve ignorar erros de fusão.

Replace(String, String)

Substitui o conteúdo de um ficheiro especificado pelo ficheiro descrito pelo objeto atual FileInfo , eliminando o ficheiro original e criando uma cópia de segurança do ficheiro substituído.

SetAccessControl(FileSecurity)

Aplica entradas da lista de controlo de acesso (ACL) descritas por um FileSecurity objeto ao ficheiro descrito pelo objeto atual FileInfo .

ToString()

Devolve o caminho original que foi passado ao FileInfo construtor. Use a FullName propriedade or Name para o caminho completo ou nome do ficheiro.

Aplica-se a

Ver também