Sdílet prostřednictvím


DirectoryInfo Třída

Definice

Zpřístupň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 namespace System;
using namespace System::IO;
int main()
{
   
   // Specify the directories you want to manipulate.
   DirectoryInfo^ di = gcnew 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 0;
      }
      
      // 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 );
   }

}
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) == false)
        {
            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 opakovaně používat několikrát, zvažte použití metody DirectoryInfo instance místo odpovídajících statických Directory metod třídy, protože kontrola zabezpečení nebude vždy nutná.

Poznámka

Ve členech, které přijímají cestu jako vstupní řetězec, musí být tato cesta ve správném formátu, jinak je vyvolána výjimka. Pokud je například cesta plně kvalifikovaná, ale začíná mezerou, cesta se v metodách třídy neořízne. 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" také ve většině případů vyvolá 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. Přijatelné jsou například všechny následující cesty:

  • "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 všem uživatelům udělen úplný přístup pro čtení a zápis do nových adresářů.

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

Konstruktory

DirectoryInfo(String)

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

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í aktuálního souboru nebo adresáře v koordinovaném univerzálním čase (UTC).

(Zděděno od FileSystemInfo)
Exists

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

Extension

Získá příponu část názvu souboru, včetně počáteční tečky . , i když je to 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), kdy byl poslední přístup k aktuálnímu souboru nebo adresáři.

(Zděděno od FileSystemInfo)
LastWriteTime

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

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

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

(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í režim souborů systému Unix pro aktuální soubor nebo adresář.

(Zděděno od FileSystemInfo)

Metody

Create()

Vytvoří adresář.

Create(DirectorySecurity)

Vytvoří adresář pomocí objektu DirectorySecurity .

CreateAsSymbolicLink(String)

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

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

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

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

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

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 .

Delete()

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

Delete(Boolean)

Odstraní tuto instanci objektu DirectoryInfoa určuje, zda se mají odstranit podadresáře a soubory.

EnumerateDirectories()

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

EnumerateDirectories(String)

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

EnumerateDirectories(String, EnumerationOptions)

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

EnumerateDirectories(String, SearchOption)

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

EnumerateFiles()

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

EnumerateFiles(String)

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

EnumerateFiles(String, EnumerationOptions)

Vrátí výčtovou kolekci informací o souboru, která odpovídá zadanému vzoru vyhledává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í.

EnumerateFileSystemInfos()

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

EnumerateFileSystemInfos(String)

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

EnumerateFileSystemInfos(String, EnumerationOptions)

Vrátí výčtovou kolekci informací 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í systému souborů, která odpovídá zadanému vzoru vyhledávání a možnosti podadresáře vyhledávání.

Equals(Object)

Určí, zda se zadaný objekt rovná 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žky 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)

Vrátí pole adresářů v aktuálním DirectoryInfo stavu, který odpovídá zadaným kritériím hledání.

GetDirectories(String, EnumerationOptions)

Vrátí pole adresářů v aktuálním DirectoryInfo stavu, který odpovídá zadanému vzoru hledání a možnostem výčtu.

GetDirectories(String, SearchOption)

Vrátí pole adresářů v aktuálním DirectoryInfo stavu, který odpovídá zadaným kritériím hledání, a pomocí hodnoty určí, zda hledat podadresáře.

GetFiles()

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

GetFiles(String)

Vrátí seznam souborů z aktuálního adresáře, který odpovídá danému vzoru hledání.

GetFiles(String, EnumerationOptions)

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

GetFiles(String, SearchOption)

Vrátí seznam souborů z aktuálního adresáře, který odpovídá danému vzoru hledání, a pomocí hodnoty určí, zda se mají hledat podadresáře.

GetFileSystemInfos()

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

GetFileSystemInfos(String)

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

GetFileSystemInfos(String, EnumerationOptions)

Načte pole objektů silného typu FileSystemInfo představující soubory a podadresáře, které odpovídají zadanému vzoru vyhledává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í.

GetHashCode()

Slouží jako výchozí hashovací funkce.

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

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

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

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

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

Type Získá z aktuální instance.

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

Získá životnost objektu služby, který řídí zásady životnosti pro tuto instanci.

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

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

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

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

Použije položky seznamu řízení přístupu (ACL) popsané objektem DirectorySecurity na adresář popsaný 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 vlastnosti nebo Name pro úplnou cestu nebo název souboru nebo adresáře.

ToString()

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

(Zděděno od FileSystemInfo)

Metody rozšíření

Create(DirectoryInfo, DirectorySecurity)

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

GetAccessControl(DirectoryInfo)

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

GetAccessControl(DirectoryInfo, AccessControlSections)

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é