DirectoryInfo Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Uwidacznia metody wystąpień do tworzenia, przenoszenia i wyliczania za pomocą katalogów i podkatalogów. Klasa ta nie może być dziedziczona.
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
- Dziedziczenie
- Dziedziczenie
- Atrybuty
Przykłady
W poniższym przykładzie pokazano niektóre z głównych składowych DirectoryInfo
klasy.
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
W poniższym przykładzie pokazano, jak skopiować katalog i jego zawartość.
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
Uwagi
DirectoryInfo Użyj klasy dla typowych operacji, takich jak kopiowanie, przenoszenie, zmienianie nazw, tworzenie i usuwanie katalogów.
Jeśli zamierzasz wielokrotnie używać obiektu, rozważ użycie metody DirectoryInfo wystąpienia zamiast odpowiednich metod Directory statycznych klasy, ponieważ sprawdzanie zabezpieczeń nie zawsze będzie konieczne.
Uwaga
W elementach członkowskich, które akceptują ścieżkę jako ciąg wejściowy, ta ścieżka musi być poprawnie sformułowana lub zgłaszany jest wyjątek. Jeśli na przykład ścieżka jest w pełni kwalifikowana, ale zaczyna się od spacji, ścieżka nie jest przycinana w metodach klasy. W związku z tym ścieżka jest źle sformułowana i zgłaszany jest wyjątek. Podobnie ścieżka lub kombinacja ścieżek nie może być w pełni kwalifikowana dwukrotnie. Na przykład "c:\temp c:\windows" również zgłasza wyjątek w większości przypadków. Upewnij się, że ścieżki są prawidłowo sformułowane podczas używania metod, które akceptują ciąg ścieżki.
W elementach członkowskich, które akceptują ścieżkę, ścieżka może odwoływać się do pliku lub tylko katalogu. Określona ścieżka może również odwoływać się do ścieżki względnej lub ścieżki uniwersalnej konwencji nazewnictwa (UNC) dla serwera i nazwy udziału. Na przykład wszystkie następujące ścieżki są dopuszczalne:
"c:\\MyDir\\MyFile.txt" w języku C# lub "c:\MyDir\MyFile.txt" w języku Visual Basic.
"c:\\MyDir" w języku C#lub "c:\MyDir" w visual basic.
"MyDir\\MySubdir" w języku C# lub "MyDir\MySubDir" w visual basic.
"\\\\MyServer\\MyShare" w języku C#lub "\MyServer\MyShare" w visual basic.
Domyślnie pełny dostęp do odczytu/zapisu do nowych katalogów jest przyznawany wszystkim użytkownikom.
Aby uzyskać listę typowych zadań we/wy, zobacz Typowe zadania we/wy.
Konstruktory
DirectoryInfo(String) |
Inicjuje DirectoryInfo nowe wystąpienie klasy w określonej ścieżce. |
Pola
FullPath |
Reprezentuje w pełni kwalifikowaną ścieżkę katalogu lub pliku. (Odziedziczone po FileSystemInfo) |
OriginalPath |
Ścieżka pierwotnie określona przez użytkownika, niezależnie od tego, czy jest względna, czy bezwzględna. (Odziedziczone po FileSystemInfo) |
Właściwości
Attributes |
Pobiera lub ustawia atrybuty dla bieżącego pliku lub katalogu. (Odziedziczone po FileSystemInfo) |
CreationTime |
Pobiera lub ustawia czas tworzenia bieżącego pliku lub katalogu. (Odziedziczone po FileSystemInfo) |
CreationTimeUtc |
Pobiera lub ustawia czas tworzenia w skoordynowanym uniwersalnym czasie (UTC) bieżącego pliku lub katalogu. (Odziedziczone po FileSystemInfo) |
Exists |
Pobiera wartość wskazującą, czy katalog istnieje. |
Extension |
Pobiera część rozszerzenia nazwy pliku, w tym kropkę wiodącą |
FullName |
Pobiera pełną ścieżkę katalogu. |
FullName |
Pobiera pełną ścieżkę katalogu lub pliku. (Odziedziczone po FileSystemInfo) |
LastAccessTime |
Pobiera lub ustawia czas ostatniego uzyskania dostępu do bieżącego pliku lub katalogu. (Odziedziczone po FileSystemInfo) |
LastAccessTimeUtc |
Pobiera lub ustawia czas w skoordynowanym uniwersalnym czasie (UTC), do którego ostatnio uzyskiwano dostęp do bieżącego pliku lub katalogu. (Odziedziczone po FileSystemInfo) |
LastWriteTime |
Pobiera lub ustawia czas ostatniego zapisania bieżącego pliku lub katalogu. (Odziedziczone po FileSystemInfo) |
LastWriteTimeUtc |
Pobiera lub ustawia czas, w skoordynowanym uniwersalnym czasie (UTC), kiedy bieżący plik lub katalog został ostatnio zapisany. (Odziedziczone po FileSystemInfo) |
LinkTarget |
Pobiera ścieżkę docelową linku znajdującego się w FullNamelokalizacji lub |
Name |
Pobiera nazwę tego DirectoryInfo wystąpienia. |
Parent |
Pobiera katalog nadrzędny określonego podkatalogu. |
Root |
Pobiera część katalogu głównego. |
UnixFileMode |
Pobiera lub ustawia tryb pliku systemu Unix dla bieżącego pliku lub katalogu. (Odziedziczone po FileSystemInfo) |
Metody
Create() |
Tworzy katalog. |
Create(DirectorySecurity) |
Tworzy katalog przy użyciu DirectorySecurity obiektu. |
CreateAsSymbolicLink(String) |
Tworzy link symboliczny znajdujący się w FullName tym miejscu wskazujący określony |
CreateObjRef(Type) |
Tworzy obiekt zawierający wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikowania się z obiektem zdalnym. (Odziedziczone po MarshalByRefObject) |
CreateSubdirectory(String) |
Tworzy podkatalog lub podkatalog na określonej ścieżce. Określona ścieżka może być względna względem tego wystąpienia DirectoryInfo klasy. |
CreateSubdirectory(String, DirectorySecurity) |
Tworzy podkatalog lub podkatalogi na określonej ścieżce z określonymi zabezpieczeniami. Określona ścieżka może być względna względem tego wystąpienia DirectoryInfo klasy. |
Delete() |
Usuwa tę wartość DirectoryInfo , jeśli jest pusta. |
Delete(Boolean) |
Usuwa to wystąpienie DirectoryInfoobiektu , określając, czy usunąć podkatalogi i pliki. |
EnumerateDirectories() |
Zwraca wyliczaną kolekcję informacji o katalogu w bieżącym katalogu. |
EnumerateDirectories(String) |
Zwraca wyliczaną kolekcję informacji o katalogu, która jest zgodna z określonym wzorcem wyszukiwania. |
EnumerateDirectories(String, EnumerationOptions) |
Zwraca wyliczaną kolekcję informacji o katalogu, która jest zgodna z określonym wzorcem wyszukiwania i opcjami wyliczenia. |
EnumerateDirectories(String, SearchOption) |
Zwraca wyliczaną kolekcję informacji o katalogu, która jest zgodna z określonym wzorcem wyszukiwania i opcją podkatalogu wyszukiwania. |
EnumerateFiles() |
Zwraca wyliczaną kolekcję informacji o pliku w bieżącym katalogu. |
EnumerateFiles(String) |
Zwraca wyliczaną kolekcję informacji o plikach pasujących do wzorca wyszukiwania. |
EnumerateFiles(String, EnumerationOptions) |
Zwraca wyliczaną kolekcję informacji o plikach pasujących do określonego wzorca wyszukiwania i opcji wyliczenia. |
EnumerateFiles(String, SearchOption) |
Zwraca wyliczaną kolekcję informacji o plikach pasujących do określonego wzorca wyszukiwania i opcji podkatalogu wyszukiwania. |
EnumerateFileSystemInfos() |
Zwraca wyliczaną kolekcję informacji o systemie plików w bieżącym katalogu. |
EnumerateFileSystemInfos(String) |
Zwraca wyliczaną kolekcję informacji o systemie plików pasujących do określonego wzorca wyszukiwania. |
EnumerateFileSystemInfos(String, EnumerationOptions) |
Zwraca wyliczaną kolekcję informacji o systemie plików pasujących do określonego wzorca wyszukiwania i opcji wyliczenia. |
EnumerateFileSystemInfos(String, SearchOption) |
Zwraca wyliczaną kolekcję informacji o systemie plików pasujących do określonego wzorca wyszukiwania i opcji podkatalogu wyszukiwania. |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetAccessControl() |
DirectorySecurity Pobiera obiekt, który hermetyzuje wpisy listy kontroli dostępu (ACL) dla katalogu opisanego przez bieżący DirectoryInfo obiekt. |
GetAccessControl(AccessControlSections) |
DirectorySecurity Pobiera obiekt, który hermetyzuje określony typ wpisów listy kontroli dostępu (ACL) dla katalogu opisanego przez bieżący DirectoryInfo obiekt. |
GetDirectories() |
Zwraca podkatalogi bieżącego katalogu. |
GetDirectories(String) |
Zwraca tablicę katalogów w bieżącym DirectoryInfo pasującym do podanych kryteriów wyszukiwania. |
GetDirectories(String, EnumerationOptions) |
Zwraca tablicę katalogów w bieżącym DirectoryInfo pasującym do określonego wzorca wyszukiwania i opcji wyliczenia. |
GetDirectories(String, SearchOption) |
Zwraca tablicę katalogów w bieżącym DirectoryInfo pasującym do podanych kryteriów wyszukiwania i używając wartości w celu określenia, czy wyszukiwać podkatalogi. |
GetFiles() |
Zwraca listę plików z bieżącego katalogu. |
GetFiles(String) |
Zwraca listę plików z bieżącego katalogu zgodnego z danym wzorcem wyszukiwania. |
GetFiles(String, EnumerationOptions) |
Zwraca listę plików z bieżącego katalogu pasującego do określonego wzorca wyszukiwania i opcji wyliczenia. |
GetFiles(String, SearchOption) |
Zwraca listę plików z bieżącego katalogu zgodnego z danym wzorcem wyszukiwania i przy użyciu wartości w celu określenia, czy przeszukiwać podkatalogi. |
GetFileSystemInfos() |
Zwraca tablicę silnie typiowanych FileSystemInfo wpisów reprezentujących wszystkie pliki i podkatalogi w katalogu. |
GetFileSystemInfos(String) |
Pobiera tablicę silnie typiowanych FileSystemInfo obiektów reprezentujących pliki i podkatalogi zgodne z określonymi kryteriami wyszukiwania. |
GetFileSystemInfos(String, EnumerationOptions) |
Pobiera tablicę silnie typiowanych FileSystemInfo obiektów reprezentujących pliki i podkatalogi zgodne z określonym wzorcem wyszukiwania i opcjami wyliczania. |
GetFileSystemInfos(String, SearchOption) |
Pobiera tablicę FileSystemInfo obiektów reprezentujących pliki i podkatalogi zgodne z określonymi kryteriami wyszukiwania. |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetLifetimeService() |
Przestarzałe.
Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia. (Odziedziczone po MarshalByRefObject) |
GetObjectData(SerializationInfo, StreamingContext) |
Przestarzałe.
SerializationInfo Ustawia obiekt z nazwą pliku i dodatkowymi informacjami o wyjątku. (Odziedziczone po FileSystemInfo) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
InitializeLifetimeService() |
Przestarzałe.
Uzyskuje obiekt usługi okresu istnienia w celu kontrolowania zasad okresu istnienia dla tego wystąpienia. (Odziedziczone po MarshalByRefObject) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
MemberwiseClone(Boolean) |
Tworzy płytkią kopię bieżącego MarshalByRefObject obiektu. (Odziedziczone po MarshalByRefObject) |
MoveTo(String) |
DirectoryInfo Przenosi wystąpienie i jego zawartość do nowej ścieżki. |
Refresh() |
Odświeża stan obiektu. (Odziedziczone po FileSystemInfo) |
ResolveLinkTarget(Boolean) |
Pobiera element docelowy określonego łącza. (Odziedziczone po FileSystemInfo) |
SetAccessControl(DirectorySecurity) |
Stosuje wpisy listy kontroli dostępu (ACL) opisane przez DirectorySecurity obiekt do katalogu opisanego przez bieżący DirectoryInfo obiekt. |
ToString() |
Zwraca oryginalną ścieżkę przekazaną do konstruktora DirectoryInfo . FullName Użyj właściwości lub Name dla pełnej ścieżki lub nazwy pliku/katalogu zamiast tej metody. |
ToString() |
Zwraca oryginalną ścieżkę. FullName Użyj właściwości lub Name dla pełnej ścieżki lub nazwy pliku/katalogu. (Odziedziczone po FileSystemInfo) |
Metody rozszerzania
Create(DirectoryInfo, DirectorySecurity) |
Tworzy nowy katalog, upewniając się, że jest tworzony z określonymi zabezpieczeniami katalogu. Jeśli katalog już istnieje, nic nie zostanie zrobione. |
GetAccessControl(DirectoryInfo) |
Zwraca informacje o zabezpieczeniach katalogu. |
GetAccessControl(DirectoryInfo, AccessControlSections) |
Zwraca informacje o zabezpieczeniach katalogu. |
SetAccessControl(DirectoryInfo, DirectorySecurity) |
Zmienia atrybuty zabezpieczeń istniejącego katalogu. |