DirectoryInfo Třída

Definice

Zveřejňuje metody instancí pro vytváření, přesouvání a vytváření výčtů prostřednictvím adresářů a podadresářů. Tato třída se nemůže dědit.

public ref class DirectoryInfo sealed : System::IO::FileSystemInfo
public sealed class DirectoryInfo : System.IO.FileSystemInfo
[System.Serializable]
public sealed class DirectoryInfo : System.IO.FileSystemInfo
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DirectoryInfo : System.IO.FileSystemInfo
type DirectoryInfo = class
    inherit FileSystemInfo
[<System.Serializable>]
type DirectoryInfo = class
    inherit FileSystemInfo
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type DirectoryInfo = class
    inherit FileSystemInfo
Public NotInheritable Class DirectoryInfo
Inherits FileSystemInfo
Dědičnost
DirectoryInfo
Dědičnost
Atributy

Příklady

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

using System;
using System.IO;

class Test
{
    public static void Main()
    {
        // Specify the directories you want to manipulate.
        DirectoryInfo di = new DirectoryInfo(@"c:\MyDir");
        try
        {
            // Determine whether the directory exists.
            if (di.Exists)
            {
                // Indicate that the directory already exists.
                Console.WriteLine("That path exists already.");
                return;
            }

            // Try to create the directory.
            di.Create();
            Console.WriteLine("The directory was created successfully.");

            // Delete the directory.
            di.Delete();
            Console.WriteLine("The directory was deleted successfully.");
        }
        catch (Exception e)
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
        finally {}
    }
}
open System.IO

// Specify the directories you want to manipulate.
let di = DirectoryInfo @"c:\MyDir"
try
    // Determine whether the directory exists.
    if di.Exists then
        // Indicate that the directory already exists.
        printfn "That path exists already."
    else
        // Try to create the directory.
        di.Create()
        printfn "The directory was created successfully."

        // Delete the directory.
        di.Delete()
        printfn "The directory was deleted successfully."
with e ->
    printfn $"The process failed: {e}"
Imports System.IO

Public Class Test
    Public Shared Sub Main()
        ' Specify the directories you want to manipulate.
        Dim di As DirectoryInfo = New DirectoryInfo("c:\MyDir")
        Try
            ' Determine whether the directory exists.
            If di.Exists Then
                ' Indicate that it already exists.
                Console.WriteLine("That path exists already.")
                Return
            End If

            ' Try to create the directory.
            di.Create()
            Console.WriteLine("The directory was created successfully.")

            ' Delete the directory.
            di.Delete()
            Console.WriteLine("The directory was deleted successfully.")

        Catch e As Exception
            Console.WriteLine("The process failed: {0}", e.ToString())
        End Try
    End Sub
End Class

Následující příklad ukazuje, jak zkopírovat adresář a jeho obsah.

using System;
using System.IO;

class CopyDir
{
    public static void CopyAll(DirectoryInfo source, DirectoryInfo target)
    {
        if (source.FullName.ToLower() == target.FullName.ToLower())
        {
            return;
        }

        // Check if the target directory exists, if not, create it.
        if (!Directory.Exists(target.FullName))
        {
            Directory.CreateDirectory(target.FullName);
        }

        // Copy each file into it's new directory.
        foreach (FileInfo fi in source.GetFiles())
        {
            Console.WriteLine(@"Copying {0}\{1}", target.FullName, fi.Name);
            fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true);
        }

        // Copy each subdirectory using recursion.
        foreach (DirectoryInfo diSourceSubDir in source.GetDirectories())
        {
            DirectoryInfo nextTargetSubDir =
                target.CreateSubdirectory(diSourceSubDir.Name);
            CopyAll(diSourceSubDir, nextTargetSubDir);
        }
    }

    public static void Main()
    {
        string sourceDirectory = @"c:\sourceDirectory";
        string targetDirectory = @"c:\targetDirectory";

        DirectoryInfo diSource = new DirectoryInfo(sourceDirectory);
        DirectoryInfo diTarget = new DirectoryInfo(targetDirectory);

        CopyAll(diSource, diTarget);
    }

    // Output will vary based on the contents of the source directory.
}
open System.IO

let rec copyAll (source: DirectoryInfo) (target: DirectoryInfo) =
    if source.FullName.ToLower() <> target.FullName.ToLower() then
        // Check if the target directory exists, if not, create it.
        if not (Directory.Exists target.FullName) then
            Directory.CreateDirectory target.FullName |> ignore

        // Copy each file into it's new directory.
        for fi in source.GetFiles() do
            printfn $@"Copying {target.FullName}\{fi.Name}"
            fi.CopyTo(Path.Combine(string target, fi.Name), true) |> ignore

        // Copy each subdirectory using recursion.
        for diSourceSubDir in source.GetDirectories() do
            target.CreateSubdirectory diSourceSubDir.Name
            |> copyAll diSourceSubDir

let sourceDirectory = @"c:\sourceDirectory"
let targetDirectory = @"c:\targetDirectory"

let diSource = DirectoryInfo sourceDirectory
let diTarget = DirectoryInfo targetDirectory

copyAll diSource diTarget

// Output will vary based on the contents of the source directory.
Imports System.IO

Class CopyDir
    Shared Sub CopyAll(ByVal source As DirectoryInfo, ByVal target As DirectoryInfo)
        If (source.FullName.ToLower() = target.FullName.ToLower()) Then
            Return
        End If

        ' Check if the target directory exists, if not, create it.
        If Directory.Exists(target.FullName) = False Then
            Directory.CreateDirectory(target.FullName)
        End If

        ' Copy each file into it's new directory.
        For Each fi As FileInfo In source.GetFiles()
            Console.WriteLine("Copying {0}\{1}", target.FullName, fi.Name)
            fi.CopyTo(Path.Combine(target.ToString(), fi.Name), True)
        Next

        ' Copy each subdirectory using recursion.
        For Each diSourceSubDir As DirectoryInfo In source.GetDirectories()
            Dim nextTargetSubDir As DirectoryInfo = target.CreateSubdirectory(diSourceSubDir.Name)
            CopyAll(diSourceSubDir, nextTargetSubDir)
        Next
    End Sub

    Shared Sub Main()
        Dim sourceDirectory As String = "c:\\sourceDirectory"
        Dim targetDirectory As String = "c:\\targetDirectory"

        Dim diSource As DirectoryInfo = New DirectoryInfo(sourceDirectory)
        Dim diTarget As DirectoryInfo = New DirectoryInfo(targetDirectory)

        CopyAll(diSource, diTarget)
    End Sub
    ' Output will vary based on the contents of the source directory.
End Class

Poznámky

DirectoryInfo Třídu použijte pro typické operace, jako je kopírování, přesouvání, přejmenování, vytváření a odstraňování adresářů.

Pokud budete objekt několikrát opakovaně používat, zvažte použití metody DirectoryInfo instance namísto odpovídajících statických Directory metod třídy, protože kontrola zabezpečení nebude vždy nutná.

Note

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.

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

Seznam běžných vstupně-výstupních úloh najdete v tématu Běžné vstupně-výstupní úlohy.

Konstruktory

Name Description
DirectoryInfo(String)

Inicializuje novou instanci DirectoryInfo třídy na zadané cestě.

Pole

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

Name Description
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)
Exists

Získá hodnotu určující, zda adresář existuje.

Extension

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

(Zděděno od FileSystemInfo)
FullName

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

FullName

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

(Zděděno od FileSystemInfo)
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)
LinkTarget

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

(Zděděno od FileSystemInfo)
Name

Získá název této DirectoryInfo instance.

Parent

Získá nadřazený adresář zadaného podadresáře.

Root

Získá kořenovou část adresáře.

UnixFileMode

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

(Zděděno od FileSystemInfo)

Metody

Name Description
Create()

Vytvoří adresář.

Create(DirectorySecurity)

Vytvoří adresář pomocí objektu DirectorySecurity .

CreateAsSymbolicLink(String)

Vytvoří symbolický odkaz, který odkazuje FullName na zadaný 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)
CreateSubdirectory(String, DirectorySecurity)

Vytvoří podadresář nebo podadresáře na zadané cestě se zadaným zabezpečením. Zadaná cesta může být relativní vzhledem k této instanci DirectoryInfo třídy.

CreateSubdirectory(String)

Vytvoří podadresář nebo podadresáře v zadané cestě. Zadaná cesta může být relativní vzhledem k této instanci DirectoryInfo třídy.

Delete()

Odstraní ho DirectoryInfo , pokud je prázdný.

Delete(Boolean)

Odstraní tuto instanci objektu DirectoryInfo, určující, zda se mají odstranit podadresáře a soubory.

EnumerateDirectories()

Vrátí výčtovou kolekci informací o adresáři v aktuálním adresáři.

EnumerateDirectories(String, EnumerationOptions)

Vrátí výčtovou kolekci informací o adresáři, která odpovídá zadanému vzoru hledání a možnostem výčtu.

EnumerateDirectories(String, SearchOption)

Vrátí výčtovou kolekci informací o adresáři, která odpovídá zadanému vzoru hledání a možnosti podadresáře hledání.

EnumerateDirectories(String)

Vrátí výčtovou kolekci informací o adresáři, která odpovídá zadanému vzoru hledání.

EnumerateFiles()

Vrátí výčtovou kolekci informací o souboru v aktuálním adresáři.

EnumerateFiles(String, EnumerationOptions)

Vrátí výčtovou kolekci informací o souboru, která odpovídá zadanému vzoru hledání a možnostem výčtu.

EnumerateFiles(String, SearchOption)

Vrátí výčtovou kolekci informací o souboru, která odpovídá zadanému vzoru hledání a možnosti podadresáře hledání.

EnumerateFiles(String)

Vrátí výčtovou kolekci informací o souboru, která odpovídá vzoru hledání.

EnumerateFileSystemInfos()

Vrátí výčtovou kolekci informací o systému souborů v aktuálním adresáři.

EnumerateFileSystemInfos(String, EnumerationOptions)

Vrátí výčtovou kolekci informací o systému souborů, která odpovídá zadanému vzoru hledání a možnostem výčtu.

EnumerateFileSystemInfos(String, SearchOption)

Vrátí výčtovou kolekci informací o systému souborů, která odpovídá zadanému vzoru hledání a možnosti podadresáře hledání.

EnumerateFileSystemInfos(String)

Vrátí výčtovou kolekci informací o systému souborů, která odpovídá zadanému vzoru hledání.

Equals(Object)

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

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

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

GetAccessControl(AccessControlSections)

DirectorySecurity Získá objekt, který zapouzdřuje zadaný typ položek seznamu řízení přístupu (ACL) pro adresář popsaný aktuálním DirectoryInfo objektem.

GetDirectories()

Vrátí podadresáře aktuálního adresáře.

GetDirectories(String, EnumerationOptions)

Vrátí pole adresářů v aktuální DirectoryInfo shodě se zadaným vzorem hledání a možnostmi výčtu.

GetDirectories(String, SearchOption)

Vrátí pole adresářů v aktuálním DirectoryInfo shodě s danými kritérii hledání a pomocí hodnoty určí, zda se mají prohledávat podadresáře.

GetDirectories(String)

Vrátí pole adresářů v aktuální DirectoryInfo shodě s danými kritérii hledání.

GetFiles()

Vrátí seznam souborů z aktuálního adresáře.

GetFiles(String, EnumerationOptions)

Vrátí seznam souborů z aktuálního adresáře odpovídající zadanému vzoru hledání a možnostem výčtu.

GetFiles(String, SearchOption)

Vrátí seznam souborů z aktuálního adresáře odpovídající zadanému vzoru hledání a pomocí hodnoty určí, jestli se mají hledat podadresáře.

GetFiles(String)

Vrátí seznam souborů z aktuálního adresáře odpovídající zadanému vzoru hledání.

GetFileSystemInfos()

Vrátí pole položek silného typu FileSystemInfo představujících všechny soubory a podadresáře v adresáři.

GetFileSystemInfos(String, EnumerationOptions)

Načte pole objektů silného typu FileSystemInfo představujících soubory a podadresáře, které odpovídají zadanému vzoru hledání a možnostem výčtu.

GetFileSystemInfos(String, SearchOption)

Načte pole FileSystemInfo objektů, které představují soubory a podadresáře odpovídající zadaným kritériím hledání.

GetFileSystemInfos(String)

Načte pole objektů silného typu FileSystemInfo představujících soubory a podadresáře, které odpovídají zadaným kritériím hledání.

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

SerializationInfo Nastaví objekt 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 MarshalByRefObject objektu.

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

Přesune DirectoryInfo instanci a její obsah do nové cesty.

Refresh()

Aktualizuje stav objektu.

(Zděděno od FileSystemInfo)
ResolveLinkTarget(Boolean)

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

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

Použije položky seznamu řízení přístupu (ACL) popsané objektem DirectorySecurity do adresáře popsaného aktuálním DirectoryInfo objektem.

ToString()

Vrátí původní cestu, která byla předána konstruktoru DirectoryInfo . FullName Místo této metody použijte úplnou Name cestu nebo název souboru nebo adresáře nebo vlastnosti.

ToString()

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

(Zděděno od FileSystemInfo)

Metody rozšíření

Name Description
Create(DirectoryInfo, DirectorySecurity)

Vytvoří nový adresář a zajistí, že se vytvoří se zadaným zabezpečením adresáře. Pokud adresář již existuje, nic se neprovede.

GetAccessControl(DirectoryInfo, AccessControlSections)

Vrátí informace o zabezpečení adresáře.

GetAccessControl(DirectoryInfo)

Vrátí informace o zabezpečení adresáře.

SetAccessControl(DirectoryInfo, DirectorySecurity)

Změní atributy zabezpečení existujícího adresáře.

Platí pro

Viz také