Directory Třída

Definice

Zveřejňuje statické metody pro vytváření, přesouvání a vytváření výčtů prostřednictvím adresářů a podadresářů. Tuto třídu nelze zdě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í souborů už v původním adresáři neexistují.

using System;
using System.IO;

partial class Example1
{
    static void TwoStringsExample()
    {
        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

Partial Class Example1
    Shared Sub TwoStringExample()

        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 Class

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

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

partial class Program
{
    static void EnumerateFilesExample()
    {
        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

Partial Class Program
    Shared Sub EnumerateFilesExample()

        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 Class

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

using System;
using System.IO;

partial class Program
{
    static void DirectoryMoveExample()
    {
        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

Partial Class Program
    Shared Sub DirectoryMoveExample()

        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 Class

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í pro všechny metody. Pokud budete objekt několikrát opakovaně používat, 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 pracujete.

Note

U členů, kteří přijímají řetězcový path parametr, 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 (" c:\temp"), řetězec cesty není oříznutý, takže cesta je považována za poškozenou a vyvolá se výjimka. Kromě toho nemůže být cesta nebo kombinace cest plně kvalifikovaná dvakrát. Například "c:\temp c:\windows" vyvolá také výjimku. Při použití metod, které přijímají řetězec cesty, se ujistěte, že jsou cesty správně vytvořené. Další informace najdete tady: Path.

V č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). Například všechny následující cesty jsou přijatelné:

  • "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. 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 ke C:\Temp\ a všem jeho podadresářům.) Pokud chcete požadovat oprávnění pouze pro konkrétní adresář, ukončete řetězec cesty tečkou. (Například "C:\Temp\" uděluje přístup pouze ke C:\Temp\, nikoli k jeho podadresářům.)

U členů, kteří 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á regulární výrazy. Další informace naleznete 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.

Metody

Name Description
CreateDirectory(String, DirectorySecurity)

Vytvoří všechny adresáře v zadané cestě, pokud ještě neexistují, a použije zadané 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 ještě neexistují.

CreateDirectory(String)

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

CreateSymbolicLink(String, String)

Vytvoří symbolický odkaz adresáře identifikovaný odkazem path na pathToTarget.

CreateTempSubdirectory(String)

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

Delete(String, Boolean)

Odstraní zadaný adresář a v případě potřeby všechny podadresáře a soubory v adresáři.

Delete(String)

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

EnumerateDirectories(String, String, EnumerationOptions)

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

EnumerateDirectories(String, String, SearchOption)

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

EnumerateDirectories(String, String)

Vrátí výčtovou kolekci úplných názvů adresáře, která odpovídá vzoru hledání v zadané cestě.

EnumerateDirectories(String)

Vrátí výčet kolekcí úplných názvů adresářů 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ává 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ává podadresáře.

EnumerateFiles(String, String)

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

EnumerateFiles(String)

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

EnumerateFileSystemEntries(String, String, EnumerationOptions)

Vrátí výčet kolekcí 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ává podadresáře.

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)

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

Exists(String)

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

GetAccessControl(String, AccessControlSections)

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

GetAccessControl(String)

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

GetCreationTime(String)

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

GetCreationTimeUtc(String)

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

GetCurrentDirectory()

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

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.

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)

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

GetDirectoryRoot(String)

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

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.

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)

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

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ává podadresáře.

GetFileSystemEntries(String, String)

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

GetFileSystemEntries(String)

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

GetLastAccessTime(String)

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

GetLastAccessTimeUtc(String)

Vrátí datum a čas ve formátu UTC (Coordinated Universal Time), ke kterému byl zadaný soubor nebo adresář naposledy přístupný.

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.

GetParent(String)

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

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áře.

SetAccessControl(String, DirectorySecurity)

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

SetCreationTime(String, DateTime)

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

SetCreationTimeUtc(String, DateTime)

Nastaví datum a čas vytvoření ve formátu UTC (Coordinated Universal Time) pro zadaný soubor nebo adresář.

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), ke kterému 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é