Directory Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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ářů.
K vytvoření adresáře použijte jednu z těchto CreateDirectory metod.
Pokud chcete odstranit adresář, použijte jednu z těchto Delete metod.
Pokud chcete získat nebo nastavit aktuální adresář pro aplikaci, použijte metodu GetCurrentDirectory nebo SetCurrentDirectory .
Pokud chcete manipulovat s DateTime informacemi souvisejícími s vytvořením, přístupem a zápisem adresáře, použijte metody jako SetLastAccessTime a SetCreationTime.
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ý |
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. |