Sdílet prostřednictvím


FileInfo Třída

Definice

Poskytuje vlastnosti a metody instancí pro vytváření, kopírování, odstraňování, přesouvání a otevírání souborů a pomáhá při vytváření FileStream objektů. Tuto třídu nelze zdědit.

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
Dědičnost
Dědičnost
Atributy

Příklady

Následující příklad ukazuje některé hlavní členy FileInfo třídy.

Při prvním načtení vlastností FileInfo volá metodu Refresh a ukládá informace o souboru do mezipaměti. Při dalších voláních musíte zavolat Refresh, abyste získali nejnovější kopii informací.

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

Tento příklad vytvoří výstup podobný následujícímu.

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.

Poznámky

Třída FileInfo slouží k typickým operacím, jako je kopírování, přesouvání, přejmenování, vytváření, otevírání, odstraňování a připojování k souborům.

Pokud provádíte více operací se stejným souborem, může být efektivnější používat FileInfo metody instance místo odpovídajících statických metod třídy File, protože kontrola zabezpečení nebude vždy nutná.

Mnoho FileInfo metod vrací jiné vstupně-výstupní typy při vytváření nebo otevírání souborů. Tyto další typy můžete použít k další manipulaci se souborem. Další informace najdete v konkrétních FileInfo členů, jako jsou Open, OpenRead, OpenText, CreateTextnebo Create.

Ve výchozím nastavení je úplný přístup pro čtení a zápis k novým souborům udělen všem uživatelům.

Následující tabulka popisuje výčty, které se používají k přizpůsobení chování různých metod FileInfo.

Výčet Popis
FileAccess Určuje přístup pro čtení a zápis k souboru.
FileShare Určuje úroveň přístupu povolenou pro soubor, který se již používá.
FileMode Určuje, zda je obsah existujícího souboru zachován nebo přepsán a zda požadavky na vytvoření existujícího souboru způsobí výjimku.

Poznámka

U členů, kteří přijímají cestu jako vstupní řetězec, musí být tato cesta správně vytvořená nebo je vyvolána výjimka. Pokud je například cesta plně kvalifikovaná, ale začíná mezerou, cesta není oříznuta metodami třídy. Proto je cesta poškozena a je vyvolána výjimka. Podobně cesta nebo kombinace cest nemůže být plně kvalifikovaná dvakrát. Například "c:\temp c:\windows" vyvolá ve většině případů výjimku. Při použití metod, které přijímají řetězec cesty, se ujistěte, že jsou cesty správně vytvořené.

Ve členech, kteří přijímají cestu, může cesta odkazovat na soubor nebo pouze adresář. Zadaná cesta může také odkazovat na relativní cestu nebo cestu UNC (Universal Naming Convention) pro název serveru a sdílené složky. Například všechny následující cesty jsou přijatelné:

  • "c:\\MyDir\\MyFile.txt" v jazyce C# nebo "c:\MyDir\MyFile.txt" v jazyce Visual Basic.

  • "c:\\MyDir" v jazyce C# nebo "c:\MyDir" v jazyce Visual Basic.

  • "MyDir\\MySubdir" v jazyce C# nebo "MyDir\MySubDir" v jazyce Visual Basic.

  • "\\\\MyServer\\MyShare" v jazyce C# nebo "\\MyServer\MyShare" v jazyce Visual Basic.

Třída FileInfo poskytuje následující vlastnosti, které umožňují načíst informace o souboru. Příklad použití jednotlivých vlastností najdete na stránkách vlastností.

  • Vlastnost Directory načte objekt, který představuje nadřazený adresář souboru.

  • Vlastnost DirectoryName načte úplnou cestu nadřazeného adresáře souboru.

  • Vlastnost Exists zkontroluje přítomnost souboru před jeho provozem.

  • Vlastnost IsReadOnly načte nebo nastaví hodnotu, která určuje, zda lze soubor upravit.

  • Length načte velikost souboru.

  • Name načte název souboru.

Konstruktory

FileInfo(String)

Inicializuje novou instanci FileInfo třídy, která funguje jako obálka pro cestu k souboru.

Pole

FullPath

Představuje plně kvalifikovanou cestu k adresáři nebo souboru.

(Zděděno od FileSystemInfo)
OriginalPath

Cesta původně určená uživatelem, ať už relativní, nebo absolutní.

(Zděděno od FileSystemInfo)

Vlastnosti

Attributes

Získá nebo nastaví atributy pro aktuální soubor nebo adresář.

(Zděděno od FileSystemInfo)
CreationTime

Získá nebo nastaví čas vytvoření aktuálního souboru nebo adresáře.

(Zděděno od FileSystemInfo)
CreationTimeUtc

Získá nebo nastaví čas vytvoření v koordinovaném univerzálním čase (UTC) aktuálního souboru nebo adresáře.

(Zděděno od FileSystemInfo)
Directory

Získá instanci nadřazeného adresáře.

DirectoryName

Získá řetězec představující úplnou cestu k adresáři.

Exists

Získá hodnotu označující, zda soubor existuje.

Extension

Získá příponu části názvu souboru, včetně úvodní tečky . i v případě, že se jedná o celý název souboru, nebo prázdný řetězec, pokud neexistuje žádná přípona.

(Zděděno od FileSystemInfo)
FullName

Získá úplnou cestu k adresáři nebo souboru.

(Zděděno od FileSystemInfo)
IsReadOnly

Získá nebo nastaví hodnotu, která určuje, zda je aktuální soubor jen pro čtení.

LastAccessTime

Získá nebo nastaví čas posledního přístupu k aktuálnímu souboru nebo adresáři.

(Zděděno od FileSystemInfo)
LastAccessTimeUtc

Získá nebo nastaví čas v koordinovaném univerzálním čase (UTC), ke kterému byl naposledy přístupný aktuální soubor nebo adresář.

(Zděděno od FileSystemInfo)
LastWriteTime

Získá nebo nastaví čas, kdy byl aktuální soubor nebo adresář naposledy zapsán.

(Zděděno od FileSystemInfo)
LastWriteTimeUtc

Získá nebo nastaví čas v koordinovaném univerzálním čase (UTC), kdy byl aktuální soubor nebo adresář naposledy zapsán.

(Zděděno od FileSystemInfo)
Length

Získá velikost aktuálního souboru v bajtech.

LinkTarget

Získá cílovou cestu odkazu umístěného v FullNamenebo null, pokud tato instance FileSystemInfo nepředstavuje odkaz.

(Zděděno od FileSystemInfo)
Name

Získá název souboru.

UnixFileMode

Získá nebo nastaví unixový režim souboru pro aktuální soubor nebo adresář.

(Zděděno od FileSystemInfo)

Metody

AppendText()

Vytvoří StreamWriter, který připojí text k souboru reprezentované touto instancí FileInfo.

CopyTo(String)

Zkopíruje existující soubor do nového souboru a zakáže přepsání existujícího souboru.

CopyTo(String, Boolean)

Zkopíruje existující soubor do nového souboru, což umožňuje přepsání existujícího souboru.

Create()

Vytvoří soubor.

CreateAsSymbolicLink(String)

Vytvoří symbolický odkaz umístěný v FullName, který odkazuje na zadanou pathToTarget.

(Zděděno od FileSystemInfo)
CreateObjRef(Type)

Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy serveru sloužícího ke komunikaci se vzdáleným objektem.

(Zděděno od MarshalByRefObject)
CreateText()

Vytvoří StreamWriter, který zapíše nový textový soubor.

Decrypt()

Dešifruje soubor, který byl zašifrován aktuálním účtem pomocí metody Encrypt().

Delete()

Trvale odstraní soubor.

Encrypt()

Zašifruje soubor tak, aby ho dešifrovat mohl jenom účet použitý k šifrování souboru.

Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
GetAccessControl()

Získá FileSecurity objekt, který zapouzdřuje položky seznamu řízení přístupu (ACL) pro soubor popsaný aktuálním objektem FileInfo.

GetAccessControl(AccessControlSections)

Získá FileSecurity objekt, který zapouzdřuje zadaný typ položek seznamu řízení přístupu (ACL) pro soubor popsaný aktuálním FileInfo objektu.

GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetLifetimeService()
Zastaralé.

Načte objekt služby aktuální životnosti, který řídí zásady životnosti pro tuto instanci.

(Zděděno od MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)
Zastaralé.

Nastaví objekt SerializationInfo s názvem souboru a dalšími informacemi o výjimce.

(Zděděno od FileSystemInfo)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
InitializeLifetimeService()
Zastaralé.

Získá objekt služby životnosti pro řízení zásad životnosti pro tuto instanci.

(Zděděno od MarshalByRefObject)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
MemberwiseClone(Boolean)

Vytvoří mělkou kopii aktuálního objektu MarshalByRefObject.

(Zděděno od MarshalByRefObject)
MoveTo(String)

Přesune zadaný soubor do nového umístění a poskytne možnost zadat nový název souboru.

MoveTo(String, Boolean)

Přesune zadaný soubor do nového umístění a poskytne možnosti pro zadání nového názvu souboru a přepsání cílového souboru, pokud již existuje.

Open(FileMode)

Otevře soubor v zadaném režimu.

Open(FileMode, FileAccess)

Otevře soubor v zadaném režimu s přístupem ke čtení, zápisu nebo čtení/zápisu.

Open(FileMode, FileAccess, FileShare)

Otevře soubor v zadaném režimu s přístupem ke čtení, zápisu nebo čtení/zápisu a zadanou možností sdílení.

Open(FileStreamOptions)

Inicializuje novou instanci třídy FileStream se zadaným režimem vytváření, oprávněním ke čtení a zápisu a sdílení, přístup k ostatním FileStreams může mít stejný soubor, velikost vyrovnávací paměti, další možnosti souboru a velikost přidělení.

OpenRead()

Vytvoří FileStreamjen pro čtení .

OpenText()

Vytvoří StreamReader s kódováním UTF8, které čte z existujícího textového souboru.

OpenWrite()

Vytvoří FileStreamjen pro zápis .

Refresh()

Aktualizuje stav objektu.

(Zděděno od FileSystemInfo)
Replace(String, String)

Nahradí obsah zadaného souboru souborem popsaným aktuálním objektem FileInfo, odstraněním původního souboru a vytvořením zálohy nahrazeného souboru.

Replace(String, String, Boolean)

Nahradí obsah zadaného souboru souborem popsaným aktuálním objektem FileInfo, odstraněním původního souboru a vytvořením zálohy nahrazeného souboru. Určuje také, jestli se mají ignorovat chyby sloučení.

ResolveLinkTarget(Boolean)

Získá cíl zadaného propojení.

(Zděděno od FileSystemInfo)
SetAccessControl(FileSecurity)

Použije položky seznamu řízení přístupu (ACL) popsané objektem FileSecurity na soubor popsaný aktuálním objektem FileInfo.

ToString()

Vrátí původní cestu, která byla předána konstruktoru FileInfo. Pro úplnou cestu nebo název souboru použijte vlastnost FullName nebo Name.

ToString()

Vrátí původní cestu. Pro úplnou cestu nebo název souboru nebo adresáře použijte vlastnosti FullName nebo Name.

(Zděděno od FileSystemInfo)

Metody rozšíření

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

Vytvoří nový datový proud souborů a zajistí, že se vytvoří se zadanými vlastnostmi a nastavením zabezpečení.

GetAccessControl(FileInfo)

Vrátí informace o zabezpečení souboru.

GetAccessControl(FileInfo, AccessControlSections)

Vrátí informace o zabezpečení souboru.

SetAccessControl(FileInfo, FileSecurity)

Změní atributy zabezpečení existujícího souboru.

Platí pro

Viz také