Sdílet prostřednictvím


Directory Třída

Definice

Zpřístupňuje statické metody pro vytváření, přesouvání a výčet adresářů a podadresářů. Tato třída se nemůže dědit.

public ref class Directory abstract sealed
public ref class Directory sealed
public static class Directory
public sealed class Directory
[System.Runtime.InteropServices.ComVisible(true)]
public static class Directory
type Directory = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type Directory = class
Public Class Directory
Public NotInheritable Class Directory
Dědičnost
Directory
Atributy

Příklady

Následující příklad ukazuje, jak načíst všechny textové soubory z adresáře a přesunout je do nového adresáře. Po přesunutí už soubory v původním adresáři neexistují.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\current";
            string archiveDirectory = @"C:\archive";

            try
            {
                var txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt");

                foreach (string currentFile in txtFiles)
                {
                    string fileName = currentFile.Substring(sourceDirectory.Length + 1);
                    Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
open System.IO

let sourceDirectory = @"C:\current"
let archiveDirectory = @"C:\archive"

try
    let txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt")

    for currentFile in txtFiles do
        let fileName = currentFile.Substring(sourceDirectory.Length + 1)
        Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))

with e ->
    printfn $"{e.Message}"
Imports System.IO

Module Module1

    Sub Main()
        Dim sourceDirectory As String = "C:\current"
        Dim archiveDirectory As String = "C:\archive"

        Try
            Dim txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt")

            For Each currentFile As String In txtFiles
                Dim fileName = currentFile.Substring(sourceDirectory.Length + 1)
                Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))
            Next
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try
    End Sub

End Module

Následující příklad ukazuje, jak pomocí EnumerateFiles metody načíst kolekci textových souborů z adresáře a pak použít tuto kolekci v dotazu k vyhledání všech řádků, které obsahují "Příklad".

using System;
using System.IO;
using System.Linq;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string archiveDirectory = @"C:\archive";

            var files = from retrievedFile in Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories)
                        from line in File.ReadLines(retrievedFile)
                        where line.Contains("Example")
                        select new
                        {
                            File = retrievedFile,
                            Line = line
                        };

            foreach (var f in files)
            {
                Console.WriteLine("{0} contains {1}", f.File, f.Line);
            }
            Console.WriteLine("{0} lines found.", files.Count().ToString());
        }
    }
}
open System.IO

let archiveDirectory = @"C:\archive"

let files = 
    query {
        for retrivedFile in Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories) do
        for line in File.ReadLines retrivedFile do
        where (line.Contains "file") 
        select 
            {| File = retrivedFile 
               Line = line |}
    }

for f in files do
    printfn $"{f.File} contains {f.Line}"
printfn "{Seq.length files} lines found."
Imports System.IO

Module Module1

    Sub Main()
        Dim archiveDirectory As String = "C:\archive"

        Dim files = From retrievedFile In Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories)
                    From line In File.ReadLines(retrievedFile)
                    Where line.Contains("Example")
                    Select New With {.curFile = retrievedFile, .curLine = line}

        For Each f In files
            Console.WriteLine("{0} contains {1}", f.curFile, f.curLine)
        Next
        Console.WriteLine("{0} lines found.", files.Count.ToString())

    End Sub

End Module

Následující příklad ukazuje, jak přesunout adresář a všechny jeho soubory do nového adresáře. Původní adresář po přesunutí již neexistuje.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\source";
            string destinationDirectory = @"C:\destination";

            try
            {
                Directory.Move(sourceDirectory, destinationDirectory);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
open System.IO

let sourceDirectory = @"C:\source"
let destinationDirectory = @"C:\destination"

try
    Directory.Move(sourceDirectory, destinationDirectory)
with e ->
    printfn $"{e.Message}"
Imports System.IO

Module Module1

    Sub Main()
        Dim sourceDirectory As String = "C:\source"
        Dim destinationDirectory As String = "C:\destination"

        Try
            Directory.Move(sourceDirectory, destinationDirectory)
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try

    End Sub

End Module

Poznámky

Directory 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ářů.

Statické metody Directory třídy provádějí kontroly zabezpečení u všech metod. Pokud budete objekt opakovaně používat několikrát, zvažte místo toho použití odpovídající metody DirectoryInfo instance, protože kontrola zabezpečení nebude vždy nutná.

Pokud provádíte pouze jednu akci související s adresářem, může být efektivnější použít statickou Directory metodu místo odpovídající DirectoryInfo metody instance. Většina Directory metod vyžaduje cestu k adresáři, se kterým manipulujete.

Poznámka

Ve členech, které přijímají parametr řetězce path , musí být tato cesta správně vytvořena nebo je vyvolána výjimka. Pokud je například cesta plně kvalifikovaná, ale začíná mezerou (" c:\temp), řetězec cesty se neoříznou, takže cesta se považuje za poškozenou a vyvolá se výjimka. Kromě toho nelze cestu nebo kombinaci cest plně kvalifikovat dvakrát. Například "c:\temp c:\windows" také vyvolá výjimku. Ujistěte se, že vaše cesty jsou správně vytvořené při použití metod, které přijímají řetězec cesty. Další informace naleznete zde Path.

Ve členech, kteří přijímají cestu, může cesta odkazovat na soubor nebo adresář. Pro název serveru a sdílené složky můžete použít úplnou cestu, relativní cestu nebo cestu UNC (Universal Naming Convention). Přijatelné jsou například všechny následující cesty:

  • "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ářů. Aplikace ale musí mít správné zabezpečení pro přístup k existujícím adresářům.

Pokud chcete požadovat oprávnění pro adresář a všechny jeho podadresáře, ukončete řetězec cesty znakem oddělovače adresáře. (Například "C:\Temp\" uděluje přístup k C:\Temp\ a všem jeho podadresářům.) Pokud chcete požadovat oprávnění jenom pro konkrétní adresář, ukončete řetězec cesty tečkou. (Například "C:\Temp\." uděluje přístup pouze k C:\Temp\, nikoli k jeho podadresářům.)

Ve členech, které přijímají searchPattern parametr, může být hledaný řetězec libovolnou kombinací literálových znaků a dvou zástupných znaků; * a ?. Tento parametr nerozpoznává regulární výrazy. Další informace najdete v EnumerateDirectories(String, String) metodě nebo jakékoli jiné metodě, která používá searchPattern parametr .

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

Directory a DirectoryInfo nejsou podporovány pro použití v aplikacích pro Windows Store. Informace o přístupu k souborům a složkám v aplikacích pro Windows Store najdete v tématu Přístup k datům a souborům (aplikace pro Windows Store).

Metody

CreateDirectory(String)

Vytvoří všechny adresáře a podadresáře v zadané cestě, pokud již neexistují.

CreateDirectory(String, DirectorySecurity)

Vytvoří všechny adresáře v zadané cestě, pokud již neexistují, s použitím zadaného zabezpečení Systému Windows.

CreateDirectory(String, UnixFileMode)

Vytvoří všechny adresáře a podadresáře v zadané cestě se zadanými oprávněními, pokud již neexistují.

CreateSymbolicLink(String, String)

Vytvoří adresářový symbolický odkaz, který path odkazuje na pathToTarget.

CreateTempSubdirectory(String)

Vytvoří jedinečně pojmenovaný prázdný adresář v dočasném adresáři aktuálního uživatele.

Delete(String)

Odstraní prázdný adresář ze zadané cesty.

Delete(String, Boolean)

Odstraní zadaný adresář a všechny podadresáře a soubory v adresáři, pokud jsou uvedené.

EnumerateDirectories(String)

Vrátí výčet kolekcí úplných názvů adresářů v zadané cestě.

EnumerateDirectories(String, String)

Vrátí výčet kolekcí úplných jmen adresářů, které odpovídají vzoru hledání v zadané cestě.

EnumerateDirectories(String, String, EnumerationOptions)

Vrátí výčet kolekcí úplných názvů adresářů, které odpovídají vzoru hledání v zadané cestě, a volitelně prohledá podadresáře.

EnumerateDirectories(String, String, SearchOption)

Vrátí výčet kolekcí úplných názvů adresářů, které odpovídají vzoru hledání v zadané cestě, a volitelně prohledá podadresáře.

EnumerateFiles(String)

Vrátí výčtovou kolekci úplných názvů souborů v zadané cestě.

EnumerateFiles(String, String)

Vrátí výčet kolekcí úplných názvů souborů, které odpovídají vzoru hledání v zadané cestě.

EnumerateFiles(String, String, EnumerationOptions)

Vrátí výčtovou kolekci úplných názvů souborů, které odpovídají vzoru hledání a možnostem výčtu v zadané cestě, a volitelně prohledá podadresáře.

EnumerateFiles(String, String, SearchOption)

Vrátí výčet kolekcí úplných názvů souborů, které odpovídají vzoru hledání v zadané cestě, a volitelně prohledá podadresáře.

EnumerateFileSystemEntries(String)

Vrátí výčet kolekcí názvů souborů a názvů adresářů v zadané cestě.

EnumerateFileSystemEntries(String, String)

Vrátí výčet kolekcí názvů souborů a názvů adresářů, které odpovídají vzoru hledání v zadané cestě.

EnumerateFileSystemEntries(String, String, EnumerationOptions)

Vrátí výčtovou kolekci názvů souborů a názvů adresářů, které odpovídají vzoru hledání a možnostem výčtu v zadané cestě.

EnumerateFileSystemEntries(String, String, SearchOption)

Vrátí výčet kolekcí názvů souborů a názvů adresářů, které odpovídají vzoru hledání v zadané cestě, a volitelně prohledá podadresáře.

Exists(String)

Určuje, zda daná cesta odkazuje na existující adresář na disku.

GetAccessControl(String)

DirectorySecurity Získá objekt, který zapouzdřuje položky seznamu řízení přístupu (ACL) pro zadaný adresář.

GetAccessControl(String, AccessControlSections)

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

GetCreationTime(String)

Získá datum a čas vytvoření adresáře.

GetCreationTimeUtc(String)

Získá datum a čas vytvoření adresáře ve formátu UTC (Coordinated Universal Time).

GetCurrentDirectory()

Získá aktuální pracovní adresář aplikace.

GetDirectories(String)

Vrátí názvy podadresářů (včetně jejich cest) v zadaném adresáři.

GetDirectories(String, String)

Vrátí názvy podadresářů (včetně jejich cest), které odpovídají zadanému vzoru hledání v zadaném adresáři.

GetDirectories(String, String, EnumerationOptions)

Vrátí názvy podadresářů (včetně jejich cest), které odpovídají zadanému vzoru hledání a možnostem výčtu v zadaném adresáři.

GetDirectories(String, String, SearchOption)

Vrátí názvy podadresářů (včetně jejich cest), které odpovídají zadanému vzoru hledání v zadaném adresáři, a volitelně vyhledá podadresáře.

GetDirectoryRoot(String)

Vrátí informace o svazku, kořenové informace nebo obojí pro zadanou cestu.

GetFiles(String)

Vrátí názvy souborů (včetně jejich cest) v zadaném adresáři.

GetFiles(String, String)

Vrátí názvy souborů (včetně jejich cest), které odpovídají zadanému vzoru hledání v zadaném adresáři.

GetFiles(String, String, EnumerationOptions)

Vrátí názvy souborů (včetně jejich cest), které odpovídají zadanému vzoru hledání a možnostem výčtu v zadaném adresáři.

GetFiles(String, String, SearchOption)

Vrátí názvy souborů (včetně jejich cest), které odpovídají zadanému vzoru hledání v zadaném adresáři, pomocí hodnoty k určení, zda se mají prohledávat podadresáře.

GetFileSystemEntries(String)

Vrátí názvy všech souborů a podadresářů v zadané cestě.

GetFileSystemEntries(String, String)

Vrátí pole názvů souborů a názvů adresářů, které odpovídají vzoru hledání v zadané cestě.

GetFileSystemEntries(String, String, EnumerationOptions)

Vrátí pole názvů souborů a názvů adresářů, které odpovídají vzoru hledání a možnostem výčtu v zadané cestě.

GetFileSystemEntries(String, String, SearchOption)

Vrátí pole všech názvů souborů a názvů adresářů, které odpovídají vzoru hledání v zadané cestě, a volitelně prohledá podadresáře.

GetLastAccessTime(String)

Vrátí datum a čas posledního přístupu k zadanému souboru nebo adresáři.

GetLastAccessTimeUtc(String)

Vrátí datum a čas ve formátu UTC (Coordinated Universal Time), ke kterému byl poslední přístup k zadanému souboru nebo adresáři.

GetLastWriteTime(String)

Vrátí datum a čas posledního zápisu zadaného souboru nebo adresáře.

GetLastWriteTimeUtc(String)

Vrátí datum a čas ve formátu UTC (Coordinated Universal Time), do kterého byl zadaný soubor nebo adresář naposledy zapsán.

GetLogicalDrives()

Načte názvy logických jednotek v tomto počítači ve formátu "<písmeno> jednotky:\".

GetParent(String)

Načte nadřazený adresář zadané cesty, včetně absolutní i relativní cesty.

Move(String, String)

Přesune soubor nebo adresář a jeho obsah do nového umístění.

ResolveLinkTarget(String, Boolean)

Získá cíl zadaného odkazu adresář.

SetAccessControl(String, DirectorySecurity)

Použije položky seznamu řízení přístupu (ACL) popsané objektem DirectorySecurity na zadaný adresář.

SetCreationTime(String, DateTime)

Nastaví datum a čas vytvoření zadaného souboru nebo adresáře.

SetCreationTimeUtc(String, DateTime)

Nastaví datum a čas vytvoření zadaného souboru nebo adresáře ve formátu UTC (Coordinated Universal Time).

SetCurrentDirectory(String)

Nastaví aktuální pracovní adresář aplikace na zadaný adresář.

SetLastAccessTime(String, DateTime)

Nastaví datum a čas posledního přístupu k zadanému souboru nebo adresáři.

SetLastAccessTimeUtc(String, DateTime)

Nastaví datum a čas ve formátu UTC (Coordinated Universal Time), kdy byl zadaný soubor nebo adresář naposledy přístupný.

SetLastWriteTime(String, DateTime)

Nastaví datum a čas posledního zápisu adresáře.

SetLastWriteTimeUtc(String, DateTime)

Nastaví datum a čas ve formátu UTC (Coordinated Universal Time), do kterého byl adresář naposledy zapsán.

Platí pro

Viz také