DirectoryInfo Klasa

Definicja

Udostępnia 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
DirectoryInfo
Dziedziczenie
Atrybuty

Przykłady

W poniższym przykładzie przedstawiono niektóre główne elementy członkowskie 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 ponownie użyjesz obiektu kilka razy, 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ć dobrze 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ć dwukrotnie w pełni kwalifikowana. 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ą dobrze 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 Universal Naming Convention (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 dla wszystkich użytkowników jest udzielany pełny dostęp do odczytu/zapisu do nowych katalogów.

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 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ą . , nawet jeśli jest to cała nazwa pliku lub pusty ciąg, jeśli nie ma rozszerzenia.

(Odziedziczone po FileSystemInfo)
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 czasie uniwersalnym (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 obiekcie FullNamelub null jeśli to FileSystemInfo wystąpienie nie reprezentuje łącza.

(Odziedziczone po FileSystemInfo)
Name

Pobiera nazwę tego DirectoryInfo wystąpienia.

Parent

Pobiera katalog nadrzędny określonego podkatalogu.

Root

Pobiera część główną katalogu.

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 pathToTargetelement .

(Odziedziczone po FileSystemInfo)
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 dla 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 dla tego wystąpienia DirectoryInfo klasy.

Delete()

Usuwa tę wartość DirectoryInfo , jeśli jest ona pusta.

Delete(Boolean)

Usuwa to wystąpienie obiektu DirectoryInfo, określając, czy usunąć podkatalogi i pliki.

EnumerateDirectories()

Zwraca wyliczalną kolekcję informacji o katalogu w bieżącym katalogu.

EnumerateDirectories(String)

Zwraca wyliczalną kolekcję informacji o katalogu, która jest zgodna z określonym wzorcem wyszukiwania.

EnumerateDirectories(String, EnumerationOptions)

Zwraca wyliczalną kolekcję informacji o katalogu, która jest zgodna z określonym wzorcem wyszukiwania i opcjami wyliczenia.

EnumerateDirectories(String, SearchOption)

Zwraca wyliczalną kolekcję informacji o katalogu, która jest zgodna z określonym wzorcem wyszukiwania i opcją podkatalogu wyszukiwania.

EnumerateFiles()

Zwraca wyliczalną kolekcję informacji o pliku w bieżącym katalogu.

EnumerateFiles(String)

Zwraca wyliczalną kolekcję informacji o plikach pasujących do wzorca wyszukiwania.

EnumerateFiles(String, EnumerationOptions)

Zwraca wyliczalną kolekcję informacji o pliku, która jest zgodna z określonym wzorcem wyszukiwania i opcjami wyliczenia.

EnumerateFiles(String, SearchOption)

Zwraca wyliczalną kolekcję informacji o plikach, która jest zgodna z określonym wzorcem wyszukiwania i opcją podkatalogu wyszukiwania.

EnumerateFileSystemInfos()

Zwraca wyliczalną kolekcję informacji o systemie plików w bieżącym katalogu.

EnumerateFileSystemInfos(String)

Zwraca wyliczalną kolekcję informacji o systemie plików, która jest zgodna z określonym wzorcem wyszukiwania.

EnumerateFileSystemInfos(String, EnumerationOptions)

Zwraca wyliczalną kolekcję informacji o systemie plików, która jest zgodna z określonym wzorcem wyszukiwania i opcjami wyliczenia.

EnumerateFileSystemInfos(String, SearchOption)

Zwraca wyliczalną kolekcję informacji o systemie plików, która jest zgodna z określonym wzorcem wyszukiwania i opcją 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 przeszukiwać podkatalogi.

GetFiles()

Zwraca listę plików z bieżącego katalogu.

GetFiles(String)

Zwraca listę plików z bieżącego katalogu pasującego do danego wzorca 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 pasującego do danego wzorca wyszukiwania i używając 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 wyliczenia.

GetFileSystemInfos(String, SearchOption)

Pobiera tablicę obiektów reprezentujących FileSystemInfo 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 bieżące wystąpienie.

(Odziedziczone po Object)
InitializeLifetimeService()
Przestarzałe.

Uzyskuje obiekt usługi okresu istnienia, aby kontrolować zasady 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 linku.

(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 jest wykonywane.

GetAccessControl(DirectoryInfo)

Zwraca informacje o zabezpieczeniach katalogu.

GetAccessControl(DirectoryInfo, AccessControlSections)

Zwraca informacje o zabezpieczeniach katalogu.

SetAccessControl(DirectoryInfo, DirectorySecurity)

Zmienia atrybuty zabezpieczeń istniejącego katalogu.

Dotyczy

Zobacz też