DirectoryInfo 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í.
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
- 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 |
| 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 |
| 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ý |
| 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. |