DirectoryInfo Klasa

Definicja

Udostępnia metody instancji służące do tworzenia, przechodzenia i wyliczania katalogów i podkatalogów.Exposes instance methods for creating, moving, and enumerating through directories and subdirectories. Klasa ta nie może być dziedziczona.This class cannot be inherited.

public ref class DirectoryInfo sealed : System::IO::FileSystemInfo
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public sealed class DirectoryInfo : System.IO.FileSystemInfo
type DirectoryInfo = class
    inherit FileSystemInfo
Public NotInheritable Class DirectoryInfo
Inherits FileSystemInfo
Dziedziczenie
Atrybuty

Przykłady

Poniższy przykład demonstruje niektóre główne elementy członkowskie klasy DirectoryInfo.The following example demonstrates some of the main members of the DirectoryInfo class.

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 {}
    }
}
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

Poniższy przykład ilustruje sposób kopiowania katalogu i jego zawartości.The following example demonstrates how to copy a directory and its contents.

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

Użyj klasy DirectoryInfo w przypadku typowych operacji, takich jak kopiowanie, przesuwanie, zmiana nazwy, tworzenie i Usuwanie katalogów.Use the DirectoryInfo class for typical operations such as copying, moving, renaming, creating, and deleting directories.

Jeśli zamierzasz wielokrotnie ponownie użyć obiektu, rozważ użycie metody instancji DirectoryInfo zamiast odpowiednich metod statycznych klasy Directory, ponieważ sprawdzanie zabezpieczeń nie zawsze jest konieczne.If you are going to reuse an object several times, consider using the instance method of DirectoryInfo instead of the corresponding static methods of the Directory class, because a security check will not always be necessary.

Uwaga

W elementach członkowskich, które akceptują ścieżkę jako ciąg wejściowy, ta ścieżka musi być poprawnie sformułowana lub występuje wyjątek.In members that accept a path as an input string, that path must be well-formed or an exception is raised. Na przykład jeśli ścieżka jest w pełni kwalifikowana, ale zaczyna się od spacji, ścieżka nie jest przycięta w metodach klasy.For example, if a path is fully qualified but begins with a space, the path is not trimmed in methods of the class. W związku z tym ścieżka jest źle sformułowana i zgłaszany jest wyjątek.Therefore, the path is malformed and an exception is raised. Podobnie ścieżka lub kombinacja ścieżek nie mogą być w pełni kwalifikowane dwukrotnie.Similarly, a path or a combination of paths cannot be fully qualified twice. Na przykład "c:\Temp c:\Windows" wywołuje również wyjątek w większości przypadków.For example, "c:\temp c:\windows" also raises an exception in most cases. Upewnij się, że ścieżki są poprawnie sformułowane podczas korzystania z metod, które akceptują ciąg ścieżki.Ensure that your paths are well-formed when using methods that accept a path string.

W elementach członkowskich, które akceptują ścieżkę, ścieżka może odwoływać się do pliku lub tylko katalogu.In members that accept a path, the path can refer to a file or just a directory. 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.The specified path can also refer to a relative path or a Universal Naming Convention (UNC) path for a server and share name. Na przykład wszystkie następujące są dopuszczalne ścieżki:For example, all the following are acceptable paths:

  • "c:\\MyDir\\MyFile.txt" in C#lub "c:\MyDir\MyFile.txt" w Visual Basic."c:\\MyDir\\MyFile.txt" in C#, or "c:\MyDir\MyFile.txt" in Visual Basic.

  • "c:\\MyDir" in C#lub "c:\mydir" w Visual Basic."c:\\MyDir" in C#, or "c:\MyDir" in Visual Basic.

  • "MyDir\\MySubdir" in C#lub "MyDir\MySubDir" w Visual Basic."MyDir\\MySubdir" in C#, or "MyDir\MySubDir" in Visual Basic.

  • "\\\\MyServer\\MyShare" w C#lub "\\MyServer\MyShare" w Visual Basic."\\\\MyServer\\MyShare" in C#, or "\\MyServer\MyShare" in Visual Basic.

Domyślnie pełny dostęp do odczytu i zapisu do nowych katalogów jest udzielany wszystkim użytkownikom.By default, full read/write access to new directories is granted to all users.

Aby uzyskać listę typowych zadań we/wy, zobacz typowe zadania we/wy.For a list of common I/O tasks, see Common I/O Tasks.

Konstruktory

DirectoryInfo(String)

Inicjuje nowe wystąpienie klasy DirectoryInfo w określonej ścieżce.Initializes a new instance of the DirectoryInfo class on the specified path.

Pola

FullPath

Reprezentuje w pełni kwalifikowaną ścieżkę katalogu lub pliku.Represents the fully qualified path of the directory or file.

(Odziedziczone po FileSystemInfo)
OriginalPath

Ścieżka pierwotnie określona przez użytkownika, względna lub bezwzględna.The path originally specified by the user, whether relative or absolute.

(Odziedziczone po FileSystemInfo)

Właściwości

Attributes

Pobiera lub ustawia atrybuty dla bieżącego pliku lub katalogu.Gets or sets the attributes for the current file or directory.

(Odziedziczone po FileSystemInfo)
CreationTime

Pobiera lub ustawia godzinę utworzenia bieżącego pliku lub katalogu.Gets or sets the creation time of the current file or directory.

(Odziedziczone po FileSystemInfo)
CreationTimeUtc

Pobiera lub ustawia czas utworzenia (w uniwersalnym czasie koordynowanym (UTC) bieżącego pliku lub katalogu.Gets or sets the creation time, in coordinated universal time (UTC), of the current file or directory.

(Odziedziczone po FileSystemInfo)
Exists

Pobiera wartość wskazującą, czy katalog istnieje.Gets a value indicating whether the directory exists.

Extension

Pobiera ciąg reprezentujący część rozszerzenia pliku.Gets the string representing the extension part of the file.

(Odziedziczone po FileSystemInfo)
FullName

Pobiera pełną ścieżkę katalogu.Gets the full path of the directory.

LastAccessTime

Pobiera lub ustawia godzinę ostatniego dostępu do bieżącego pliku lub katalogu.Gets or sets the time the current file or directory was last accessed.

(Odziedziczone po FileSystemInfo)
LastAccessTimeUtc

Pobiera lub ustawia godzinę ostatniego dostępu do aktualnego pliku lub katalogu w formacie UTC (Coordinated Universal Time).Gets or sets the time, in coordinated universal time (UTC), that the current file or directory was last accessed.

(Odziedziczone po FileSystemInfo)
LastWriteTime

Pobiera lub ustawia godzinę ostatniego zapisania bieżącego pliku lub katalogu.Gets or sets the time when the current file or directory was last written to.

(Odziedziczone po FileSystemInfo)
LastWriteTimeUtc

Pobiera lub ustawia godzinę, w uniwersalnym czasie koordynowanym (UTC), gdy bieżący plik lub katalog został ostatnio zapisany.Gets or sets the time, in coordinated universal time (UTC), when the current file or directory was last written to.

(Odziedziczone po FileSystemInfo)
Name

Pobiera nazwę tego wystąpienia DirectoryInfo.Gets the name of this DirectoryInfo instance.

Parent

Pobiera katalog nadrzędny określonego podkatalogu.Gets the parent directory of a specified subdirectory.

Root

Pobiera główną część katalogu.Gets the root portion of the directory.

Metody

Create()

Tworzy katalog.Creates a directory.

Create(DirectorySecurity)

Tworzy katalog przy użyciu obiektu DirectorySecurity.Creates a directory using a DirectorySecurity object.

CreateObjRef(Type)

Tworzy obiekt, który zawiera wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikacji z obiektem zdalnym.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Odziedziczone po MarshalByRefObject)
CreateSubdirectory(String)

Tworzy podkatalog lub podkatalogi dla określonej ścieżki.Creates a subdirectory or subdirectories on the specified path. Określona ścieżka może być względna dla tego wystąpienia klasy DirectoryInfo.The specified path can be relative to this instance of the DirectoryInfo class.

CreateSubdirectory(String, DirectorySecurity)

Tworzy podkatalog lub podkatalogi w określonej ścieżce z określonym zabezpieczeniami.Creates a subdirectory or subdirectories on the specified path with the specified security. Określona ścieżka może być względna dla tego wystąpienia klasy DirectoryInfo.The specified path can be relative to this instance of the DirectoryInfo class.

Delete()

Usuwa ten DirectoryInfo, jeśli jest pusty.Deletes this DirectoryInfo if it is empty.

Delete(Boolean)

Usuwa to wystąpienie DirectoryInfo, określając, czy należy usunąć podkatalogi i pliki.Deletes this instance of a DirectoryInfo, specifying whether to delete subdirectories and files.

EnumerateDirectories()

Zwraca wyliczalną kolekcję informacji katalogowych w bieżącym katalogu.Returns an enumerable collection of directory information in the current directory.

EnumerateDirectories(String)

Zwraca wyliczalną kolekcję informacji o katalogu, które pasują do określonego wzorca wyszukiwania.Returns an enumerable collection of directory information that matches a specified search pattern.

EnumerateDirectories(String, EnumerationOptions)

Zwraca wyliczalną kolekcję informacji o katalogu, które pasują do określonego wzorca wyszukiwania i opcji wyliczeniowych.Returns an enumerable collection of directory information that matches the specified search pattern and enumeration options.

EnumerateDirectories(String, SearchOption)

Zwraca wyliczalną kolekcję informacji o katalogu, które pasują do określonego wzorca wyszukiwania i opcji przeszukiwania podkatalogu.Returns an enumerable collection of directory information that matches a specified search pattern and search subdirectory option.

EnumerateFiles()

Zwraca wyliczalną kolekcję informacji o pliku w bieżącym katalogu.Returns an enumerable collection of file information in the current directory.

EnumerateFiles(String)

Zwraca wyliczalną kolekcję informacji o pliku, które pasują do wzorca wyszukiwania.Returns an enumerable collection of file information that matches a search pattern.

EnumerateFiles(String, EnumerationOptions)

Zwraca wyliczalną kolekcję informacji o pliku, które pasują do określonego wzorca wyszukiwania i opcji wyliczeniowych.Returns an enumerable collection of file information that matches the specified search pattern and enumeration options.

EnumerateFiles(String, SearchOption)

Zwraca wyliczalną kolekcję informacji o pliku, które pasują do określonego wzorca wyszukiwania i opcji przeszukiwania podkatalogu.Returns an enumerable collection of file information that matches a specified search pattern and search subdirectory option.

EnumerateFileSystemInfos()

Zwraca wyliczalną kolekcję informacji o systemie plików w bieżącym katalogu.Returns an enumerable collection of file system information in the current directory.

EnumerateFileSystemInfos(String)

Zwraca wyliczalną kolekcję informacji o systemie plików zgodną z określonym wzorcem wyszukiwania.Returns an enumerable collection of file system information that matches a specified search pattern.

EnumerateFileSystemInfos(String, EnumerationOptions)

Zwraca wyliczalną kolekcję informacji o systemie plików zgodną z określonym wzorcem wyszukiwania i opcjami wyliczenia.Returns an enumerable collection of file system information that matches the specified search pattern and enumeration options.

EnumerateFileSystemInfos(String, SearchOption)

Zwraca wyliczalną kolekcję informacji o systemie plików zgodną z określonym wzorcem wyszukiwania i opcją wyszukiwania podkatalogu.Returns an enumerable collection of file system information that matches a specified search pattern and search subdirectory option.

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
GetAccessControl()

Pobiera obiekt DirectorySecurity, który hermetyzuje wpisy listy kontroli dostępu (ACL) dla katalogu opisanego przez bieżący obiekt DirectoryInfo.Gets a DirectorySecurity object that encapsulates the access control list (ACL) entries for the directory described by the current DirectoryInfo object.

GetAccessControl(AccessControlSections)

Pobiera obiekt DirectorySecurity, który hermetyzuje określony typ wpisów listy kontroli dostępu (ACL) dla katalogu opisanego przez bieżący obiekt DirectoryInfo.Gets a DirectorySecurity object that encapsulates the specified type of access control list (ACL) entries for the directory described by the current DirectoryInfo object.

GetDirectories()

Zwraca podkatalogi bieżącego katalogu.Returns the subdirectories of the current directory.

GetDirectories(String)

Zwraca tablicę katalogów w bieżącym DirectoryInfo zgodnych z podanym kryterium wyszukiwania.Returns an array of directories in the current DirectoryInfo matching the given search criteria.

GetDirectories(String, EnumerationOptions)

Zwraca tablicę katalogów w bieżącym DirectoryInfo zgodnych z określonym wzorcem wyszukiwania i opcjami wyliczenia.Returns an array of directories in the current DirectoryInfo matching the specified search pattern and enumeration options.

GetDirectories(String, SearchOption)

Zwraca tablicę katalogów w bieżącym DirectoryInfo zgodnych z podanym kryterium wyszukiwania i przy użyciu wartości, aby określić, czy przeszukiwać podkatalogi.Returns an array of directories in the current DirectoryInfo matching the given search criteria and using a value to determine whether to search subdirectories.

GetFiles()

Zwraca listę plików z bieżącego katalogu.Returns a file list from the current directory.

GetFiles(String)

Zwraca listę plików z bieżącego katalogu zgodnej z podanym wzorcem wyszukiwania.Returns a file list from the current directory matching the given search pattern.

GetFiles(String, EnumerationOptions)

Zwraca listę plików z bieżącego katalogu pasującą do określonego wzorca wyszukiwania i opcji wyliczeniowych.Returns a file list from the current directory matching the specified search pattern and enumeration options.

GetFiles(String, SearchOption)

Zwraca listę plików z bieżącego katalogu zgodnego z danym wzorcem wyszukiwania i korzystając z wartości, aby określić, czy przeszukiwać podkatalogi.Returns a file list from the current directory matching the given search pattern and using a value to determine whether to search subdirectories.

GetFileSystemInfos()

Zwraca tablicę o jednoznacznie określonym typie FileSystemInfo wpisów reprezentujących wszystkie pliki i podkatalogi w katalogu.Returns an array of strongly typed FileSystemInfo entries representing all the files and subdirectories in a directory.

GetFileSystemInfos(String)

Pobiera tablicę o jednoznacznie określonym typie FileSystemInfo obiektów reprezentujących pliki i podkatalogi spełniające określone kryteria wyszukiwania.Retrieves an array of strongly typed FileSystemInfo objects representing the files and subdirectories that match the specified search criteria.

GetFileSystemInfos(String, EnumerationOptions)

Pobiera tablicę o jednoznacznie określonym typie FileSystemInfo obiektów reprezentujących pliki i podkatalogi zgodne z określonym wzorcem wyszukiwania i opcjami wyliczenia.Retrieves an array of strongly typed FileSystemInfo objects representing the files and subdirectories that match the specified search pattern and enumeration options.

GetFileSystemInfos(String, SearchOption)

Pobiera tablicę FileSystemInfo obiektów, które reprezentują pliki i podkatalogi spełniające określone kryteria wyszukiwania.Retrieves an array of FileSystemInfo objects that represent the files and subdirectories matching the specified search criteria.

GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetLifetimeService()

Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Odziedziczone po MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)

Ustawia obiekt SerializationInfo z nazwą pliku i dodatkowymi informacjami o wyjątku.Sets the SerializationInfo object with the file name and additional exception information.

(Odziedziczone po FileSystemInfo)
GetType()

Pobiera Type bieżącego wystąpienia.Gets the Type of the current instance.

(Odziedziczone po Object)
InitializeLifetimeService()

Uzyskuje obiekt usługi istnienia w celu kontrolowania zasad okresu istnienia dla tego wystąpienia.Obtains a lifetime service object to control the lifetime policy for this instance.

(Odziedziczone po MarshalByRefObject)
MemberwiseClone()

Tworzy skróconą kopię bieżącego Object.Creates a shallow copy of the current Object.

(Odziedziczone po Object)
MemberwiseClone(Boolean)

Tworzy skróconą kopię bieżącego obiektu MarshalByRefObject.Creates a shallow copy of the current MarshalByRefObject object.

(Odziedziczone po MarshalByRefObject)
MoveTo(String)

Przenosi wystąpienie DirectoryInfo i jego zawartość do nowej ścieżki.Moves a DirectoryInfo instance and its contents to a new path.

Refresh()

Odświeża stan obiektu.Refreshes the state of the object.

(Odziedziczone po FileSystemInfo)
SetAccessControl(DirectorySecurity)

Stosuje wpisy listy kontroli dostępu (ACL) opisane przez obiekt DirectorySecurity do katalogu opisanego przez bieżący obiekt DirectoryInfo.Applies access control list (ACL) entries described by a DirectorySecurity object to the directory described by the current DirectoryInfo object.

ToString()

Zwraca oryginalną ścieżkę, która została przeniesiona do konstruktora DirectoryInfo.Returns the original path that was passed to the DirectoryInfo constructor. Użyj właściwości FullName lub Name dla pełnej ścieżki lub nazwy pliku/katalogu zamiast tej metody.Use the FullName or Name properties for the full path or file/directory name instead of this method.

Metody rozszerzania

Create(DirectoryInfo, DirectorySecurity)

Tworzy nowy katalog, upewniając się, że został utworzony z określonymi zabezpieczeniami katalogu.Creates a new directory, ensuring it is created with the specified directory security. Jeśli katalog już istnieje, nic nie jest gotowe.If the directory already exists, nothing is done.

GetAccessControl(DirectoryInfo)

Zwraca informacje o zabezpieczeniach katalogu.Returns the security information of a directory.

GetAccessControl(DirectoryInfo, AccessControlSections)

Zwraca informacje o zabezpieczeniach katalogu.Returns the security information of a directory.

SetAccessControl(DirectoryInfo, DirectorySecurity)

Zmienia atrybuty zabezpieczeń istniejącego katalogu.Changes the security attributes of an existing directory.

Dotyczy

Zobacz też