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