DirectoryInfo Класс

Определение

Предоставляет методы экземпляра класса для создания, перемещения и перечисления в каталогах и подкаталогах.Exposes instance methods for creating, moving, and enumerating through directories and subdirectories. Этот класс не наследуется.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
Наследование
Атрибуты

Примеры

В следующем примере показаны некоторые основные члены 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

В следующем примере показано, как скопировать каталог и его содержимое.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

Комментарии

DirectoryInfo Используйте класс для стандартных операций, таких как копирование, перемещение, переименование, создание и удаление каталогов.Use the DirectoryInfo class for typical operations such as copying, moving, renaming, creating, and deleting directories.

Если вы собираетесь повторно использовать объект несколько раз, рассмотрите возможность использования метода DirectoryInfo экземпляра вместо соответствующих статических методов Directory класса, поскольку проверка безопасности не всегда требуется.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.

Примечание

В членах, принимающих путь в качестве входной строки, этот путь должен иметь правильный формат или возникнет исключение.In members that accept a path as an input string, that path must be well-formed or an exception is raised. Например, если путь является полным, но начинается с пробела, путь не усекается в методах класса.For example, if a path is fully qualified but begins with a space, the path is not trimmed in methods of the class. Поэтому путь имеет неправильный формат и возникает исключение.Therefore, the path is malformed and an exception is raised. Аналогично, путь или сочетание путей не могут быть полными и дважды.Similarly, a path or a combination of paths cannot be fully qualified twice. Например, "c:\temp c:\Windows" также вызывает исключение в большинстве случаев.For example, "c:\temp c:\windows" also raises an exception in most cases. При использовании методов, принимающих строку пути, убедитесь, что пути имеют правильный формат.Ensure that your paths are well-formed when using methods that accept a path string.

В членах, принимающих путь, путь может ссылаться на файл или только на каталог.In members that accept a path, the path can refer to a file or just a directory. Указанный путь может также ссылаться на относительный путь или путь в формате UNC для имени сервера и общего ресурса.The specified path can also refer to a relative path or a Universal Naming Convention (UNC) path for a server and share name. Например, все следующие допустимые пути:For example, all the following are acceptable paths:

  • "c:\\мидир\\мифиле.ткст" in C#или "к:\мидир\мифиле.ткст" в Visual Basic."c:\\MyDir\\MyFile.txt" in C#, or "c:\MyDir\MyFile.txt" in Visual Basic.

  • "c:\\мидир" in C#или "к:\мидир" в Visual Basic."c:\\MyDir" in C#, or "c:\MyDir" in Visual Basic.

  • «MyDir\\мисубдир» в C#или «мидир\мисубдир» в Visual Basic."MyDir\\MySubdir" in C#, or "MyDir\MySubDir" in Visual Basic.

  • «\\ C#\Мисервер \мишаре» в или«\\MyServer\MyShare» в Visual Basic.\\"\\\\MyServer\\MyShare" in C#, or "\\MyServer\MyShare" in Visual Basic.

По умолчанию всем пользователям предоставляется полный доступ на чтение и запись к новым каталогам.By default, full read/write access to new directories is granted to all users.

Список общих задач ввода-вывода см. в разделе Общие задачи ввода-вывода.For a list of common I/O tasks, see Common I/O Tasks.

Конструкторы

DirectoryInfo(String)

Выполняет инициализацию нового экземпляра класса DirectoryInfo для заданного пути.Initializes a new instance of the DirectoryInfo class on the specified path.

Поля

FullPath

Представляет полный путь к каталогу или файлу.Represents the fully qualified path of the directory or file.

(Унаследовано от FileSystemInfo)
OriginalPath

Первоначально заданный пользователем относительный или абсолютный путь.The path originally specified by the user, whether relative or absolute.

(Унаследовано от FileSystemInfo)

Свойства

Attributes

Получает или задает атрибуты для текущего файла или каталога.Gets or sets the attributes for the current file or directory.

(Унаследовано от FileSystemInfo)
CreationTime

Получает или задает время создания текущего файла или каталога.Gets or sets the creation time of the current file or directory.

(Унаследовано от FileSystemInfo)
CreationTimeUtc

Получает или задает время создания текущего файла или каталога в формате UTC.Gets or sets the creation time, in coordinated universal time (UTC), of the current file or directory.

(Унаследовано от FileSystemInfo)
Exists

Получает значение, определяющее наличие каталога.Gets a value indicating whether the directory exists.

Extension

Получает строку, содержащую расширение файла.Gets the string representing the extension part of the file.

(Унаследовано от FileSystemInfo)
FullName

Получает полный путь к каталогу.Gets the full path of the directory.

LastAccessTime

Получает или задает время последнего доступа к текущему файлу или каталогу.Gets or sets the time the current file or directory was last accessed.

(Унаследовано от FileSystemInfo)
LastAccessTimeUtc

Получает или задает дату и время последнего доступа к заданному файлу или каталогу в формате всеобщего скоординированного времени (UTC).Gets or sets the time, in coordinated universal time (UTC), that the current file or directory was last accessed.

(Унаследовано от FileSystemInfo)
LastWriteTime

Получает или задает время последней операции записи в текущий файл или каталог.Gets or sets the time when the current file or directory was last written to.

(Унаследовано от FileSystemInfo)
LastWriteTimeUtc

Получает или задает время последней операции записи в текущий файл или каталог в формате всеобщего скоординированного времени (UTC).Gets or sets the time, in coordinated universal time (UTC), when the current file or directory was last written to.

(Унаследовано от FileSystemInfo)
Name

Получает имя данного экземпляра DirectoryInfo.Gets the name of this DirectoryInfo instance.

Parent

Получает родительский каталог заданного подкаталога.Gets the parent directory of a specified subdirectory.

Root

Получает Корневую часть каталога.Gets the root portion of the directory.

Методы

Create()

Создает каталог.Creates a directory.

Create(DirectorySecurity)

Создает каталог с помощью объекта DirectorySecurity.Creates a directory using a DirectorySecurity object.

CreateObjRef(Type)

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Унаследовано от MarshalByRefObject)
CreateSubdirectory(String)

Создает один или несколько подкаталогов по заданному пути.Creates a subdirectory or subdirectories on the specified path. Путь может быть задан относительно текущего экземпляра класса DirectoryInfo.The specified path can be relative to this instance of the DirectoryInfo class.

CreateSubdirectory(String, DirectorySecurity)

Создает один или несколько подкаталогов по заданному пути с заданными параметрами безопасности.Creates a subdirectory or subdirectories on the specified path with the specified security. Путь может быть задан относительно текущего экземпляра класса DirectoryInfo.The specified path can be relative to this instance of the DirectoryInfo class.

Delete()

Удаляет этот DirectoryInfo, если он пуст.Deletes this DirectoryInfo if it is empty.

Delete(Boolean)

Удаляет данный экземпляр DirectoryInfo, указывая, следует ли также удалить подкаталоги и файлы.Deletes this instance of a DirectoryInfo, specifying whether to delete subdirectories and files.

EnumerateDirectories()

Возвращает перечисляемую коллекцию сведений о каталогах в текущем каталоге.Returns an enumerable collection of directory information in the current directory.

EnumerateDirectories(String)

Возвращает перечисляемую коллекцию сведений о каталогах, соответствующую указанному шаблону поиска.Returns an enumerable collection of directory information that matches a specified search pattern.

EnumerateDirectories(String, EnumerationOptions)
EnumerateDirectories(String, SearchOption)

Возвращает перечисляемую коллекцию сведений о каталогах, соответствующую указанному шаблону поиска и параметру поиска в подкаталогах.Returns an enumerable collection of directory information that matches a specified search pattern and search subdirectory option.

EnumerateFiles()

Возвращает перечисляемую коллекцию сведений о файлах в текущем каталоге.Returns an enumerable collection of file information in the current directory.

EnumerateFiles(String)

Возвращает перечисляемую коллекцию сведений о файлах, соответствующую шаблону поиска.Returns an enumerable collection of file information that matches a search pattern.

EnumerateFiles(String, EnumerationOptions)
EnumerateFiles(String, SearchOption)

Возвращает перечисляемую коллекцию сведений о файлах, соответствующую указанному шаблону поиска и параметру поиска в подкаталогах.Returns an enumerable collection of file information that matches a specified search pattern and search subdirectory option.

EnumerateFileSystemInfos()

Возвращает перечисляемую коллекцию сведений о файловой системе текущего каталога.Returns an enumerable collection of file system information in the current directory.

EnumerateFileSystemInfos(String)

Возвращает перечисляемую коллекцию сведений о файловой системе, соответствующую указанному шаблону поиска.Returns an enumerable collection of file system information that matches a specified search pattern.

EnumerateFileSystemInfos(String, EnumerationOptions)
EnumerateFileSystemInfos(String, SearchOption)

Возвращает перечисляемую коллекцию сведений о файловой системе, соответствующую указанному шаблону поиска и параметру поиска в подкаталогах.Returns an enumerable collection of file system information that matches a specified search pattern and search subdirectory option.

Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
GetAccessControl()

Получает объект DirectorySecurity, который инкапсулирует записи списка управления доступом (ACL) для каталога, описываемого текущим объектом DirectoryInfo.Gets a DirectorySecurity object that encapsulates the access control list (ACL) entries for the directory described by the current DirectoryInfo object.

GetAccessControl(AccessControlSections)

Получает объект DirectorySecurity, который инкапсулирует заданный тип записей списка управления доступом для каталога, описываемого текущим объектом 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()

Возвращает подкаталоги текущего каталога.Returns the subdirectories of the current directory.

GetDirectories(String)

Возвращает массив каталогов текущего объекта DirectoryInfo, отвечающих заданным условиям поиска.Returns an array of directories in the current DirectoryInfo matching the given search criteria.

GetDirectories(String, EnumerationOptions)
GetDirectories(String, SearchOption)

Возвращает массив каталогов в текущем объекте DirectoryInfo, отвечающих заданным условиям поиска, с использованием значения, которое позволяет определить, следует ли выполнять поиск в подкаталогах.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()

Возвращает список файлов текущего каталога.Returns a file list from the current directory.

GetFiles(String)

Возвращает список файлов текущего каталога, соответствующих заданному шаблону поиска.Returns a file list from the current directory matching the given search pattern.

GetFiles(String, EnumerationOptions)
GetFiles(String, SearchOption)

Возвращает список файлов из текущего каталога, соответствующих заданному шаблону поиска, с использованием значения, которое позволяет определить, следует ли выполнять поиск в подкаталогах.Returns a file list from the current directory matching the given search pattern and using a value to determine whether to search subdirectories.

GetFileSystemInfos()

Возвращает массив строго типизированных объектов FileSystemInfo, представляющих все файлы и подкаталоги в том или ином каталоге.Returns an array of strongly typed FileSystemInfo entries representing all the files and subdirectories in a directory.

GetFileSystemInfos(String)

Извлекает массив строго типизированных объектов FileSystemInfo, представляющих файлы и подкаталоги, соответствующие заданным критериям поиска.Retrieves an array of strongly typed FileSystemInfo objects representing the files and subdirectories that match the specified search criteria.

GetFileSystemInfos(String, EnumerationOptions)
GetFileSystemInfos(String, SearchOption)

Извлекает массив объектов FileSystemInfo, представляющих файлы и подкаталоги, соответствующие заданным критериям поиска.Retrieves an array of FileSystemInfo objects that represent the files and subdirectories matching the specified search criteria.

GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetLifetimeService()

Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Унаследовано от MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)

Устанавливает объект SerializationInfo с именем файла и дополнительными сведениями об исключении.Sets the SerializationInfo object with the file name and additional exception information.

(Унаследовано от FileSystemInfo)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
InitializeLifetimeService()

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.Obtains a lifetime service object to control the lifetime policy for this instance.

(Унаследовано от MarshalByRefObject)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
MemberwiseClone(Boolean)

Создает неполную копию текущего объекта MarshalByRefObject.Creates a shallow copy of the current MarshalByRefObject object.

(Унаследовано от MarshalByRefObject)
MoveTo(String)

Перемещает экземпляр DirectoryInfo и его содержимое в местоположение, на которое указывает новый путь.Moves a DirectoryInfo instance and its contents to a new path.

Refresh()

Обновляет состояние объекта.Refreshes the state of the object.

(Унаследовано от FileSystemInfo)
SetAccessControl(DirectorySecurity)

Применяет записи списка управления доступом (ACL), описанные объектом DirectorySecurity, к каталогу, который описывается текущим объектом DirectoryInfo.Applies access control list (ACL) entries described by a DirectorySecurity object to the directory described by the current DirectoryInfo object.

ToString()

Возвращает исходный путь, переданный в конструктор DirectoryInfo.Returns the original path that was passed to the DirectoryInfo constructor. Используйте свойства FullName или Name для полного пути или имени файла или каталога вместо этого метода.Use the FullName or Name properties for the full path or file/directory name instead of this method.

Методы расширения

GetAccessControl(DirectoryInfo)
GetAccessControl(DirectoryInfo, AccessControlSections)
SetAccessControl(DirectoryInfo, DirectorySecurity)

Применяется к

Дополнительно