DirectoryInfo Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет методы экземпляра класса для создания, перемещения и перечисления в каталогах и подкаталогах. Этот класс не наследуется.
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
- Наследование
- Наследование
- Атрибуты
Примеры
В следующем примере показаны некоторые main члены DirectoryInfo
класса .
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
В следующем примере показано, как скопировать каталог и его содержимое.
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
Комментарии
DirectoryInfo Используйте класс для типичных операций, таких как копирование, перемещение, переименование, создание и удаление каталогов.
Если вы собираетесь повторно использовать объект несколько раз, рассмотрите возможность использования метода экземпляра DirectoryInfo вместо соответствующих статических Directory методов класса , так как проверка безопасности не всегда потребуется.
Примечание
В членах, которые принимают путь в качестве входной строки, этот путь должен быть правильно сформирован или возникает исключение. Например, если путь является полным, но начинается с пробела, путь не обрезается в методах класса . Таким образом, путь имеет неправильный формат и вызывается исключение. Аналогичным образом путь или сочетание путей не могут быть полностью заданы дважды. Например, "c:\temp c:\windows" также в большинстве случаев вызывает исключение. Убедитесь, что пути правильно сформированы при использовании методов, которые принимают строку пути.
В членах, которые принимают путь, путь может ссылаться на файл или только каталог. Указанный путь также может ссылаться на относительный путь или UNC-путь для сервера и имени общей папки. Например, допустимы все следующие пути:
"c:\\MyDir\\MyFile.txt" в C# или "c:\MyDir\MyFile.txt" в Visual Basic.
"c:\\MyDir" в C# или "c:\MyDir" в Visual Basic.
"MyDir\\MySubdir" в C# или "MyDir\MySubDir" в Visual Basic.
"\\\\MyServer\\MyShare" в C# или "\\MyServer\MyShare" в Visual Basic.
По умолчанию полный доступ на чтение и запись к новым каталогам предоставляется всем пользователям.
Список распространенных задач ввода-вывода см. в разделе Общие задачи ввода-вывода.
Конструкторы
DirectoryInfo(String) |
Выполняет инициализацию нового экземпляра класса DirectoryInfo для заданного пути. |
Поля
FullPath |
Представляет полный путь к каталогу или файлу. (Унаследовано от FileSystemInfo) |
OriginalPath |
Первоначально заданный пользователем относительный или абсолютный путь. (Унаследовано от FileSystemInfo) |
Свойства
Attributes |
Получает или задает атрибуты для текущего файла или каталога. (Унаследовано от FileSystemInfo) |
CreationTime |
Получает или задает время создания текущего файла или каталога. (Унаследовано от FileSystemInfo) |
CreationTimeUtc |
Получает или задает время создания текущего файла или каталога в формате UTC. (Унаследовано от FileSystemInfo) |
Exists |
Получает значение, определяющее наличие каталога. |
Extension |
Возвращает часть расширения имени файла, включая начальную точку |
FullName |
Получает полный путь к каталогу. |
FullName |
Получает полный путь к каталогу или файлу. (Унаследовано от FileSystemInfo) |
LastAccessTime |
Получает или задает время последнего доступа к текущему файлу или каталогу. (Унаследовано от FileSystemInfo) |
LastAccessTimeUtc |
Получает или задает дату и время последнего доступа к заданному файлу или каталогу в формате всеобщего скоординированного времени (UTC). (Унаследовано от FileSystemInfo) |
LastWriteTime |
Получает или задает время последней операции записи в текущий файл или каталог. (Унаследовано от FileSystemInfo) |
LastWriteTimeUtc |
Получает или задает время последней операции записи в текущий файл или каталог в формате всеобщего скоординированного времени (UTC). (Унаследовано от FileSystemInfo) |
LinkTarget |
Возвращает целевой путь к ссылке, расположенной в FullName, или |
Name |
Получает имя данного экземпляра DirectoryInfo. |
Parent |
Получает родительский каталог заданного подкаталога. |
Root |
Получает Корневую часть каталога. |
UnixFileMode |
Возвращает или задает режим файла Unix для текущего файла или каталога. (Унаследовано от FileSystemInfo) |
Методы
Create() |
Создает каталог. |
Create(DirectorySecurity) |
Создает каталог с помощью объекта DirectorySecurity. |
CreateAsSymbolicLink(String) |
Создает символьную ссылку, расположенную в FullName , которая указывает на указанный |
CreateObjRef(Type) |
Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. (Унаследовано от MarshalByRefObject) |
CreateSubdirectory(String) |
Создает один или несколько подкаталогов по заданному пути. Путь может быть задан относительно текущего экземпляра класса DirectoryInfo. |
CreateSubdirectory(String, DirectorySecurity) |
Создает один или несколько подкаталогов по заданному пути с заданными параметрами безопасности. Путь может быть задан относительно текущего экземпляра класса DirectoryInfo. |
Delete() |
Удаляет этот DirectoryInfo, если он пуст. |
Delete(Boolean) |
Удаляет данный экземпляр DirectoryInfo, указывая, следует ли также удалить подкаталоги и файлы. |
EnumerateDirectories() |
Возвращает перечисляемую коллекцию сведений о каталогах в текущем каталоге. |
EnumerateDirectories(String) |
Возвращает перечисляемую коллекцию сведений о каталогах, соответствующую указанному шаблону поиска. |
EnumerateDirectories(String, EnumerationOptions) |
Возвращает перечисляемую коллекцию сведений о каталогах, соответствующую указанному шаблону поиска и параметрам перечисления. |
EnumerateDirectories(String, SearchOption) |
Возвращает перечисляемую коллекцию сведений о каталогах, соответствующую указанному шаблону поиска и параметру поиска в подкаталогах. |
EnumerateFiles() |
Возвращает перечисляемую коллекцию сведений о файлах в текущем каталоге. |
EnumerateFiles(String) |
Возвращает перечисляемую коллекцию сведений о файлах, соответствующую шаблону поиска. |
EnumerateFiles(String, EnumerationOptions) |
Возвращает перечисляемую коллекцию сведений о файлах, соответствующую указанному шаблону поиска и параметрам перечисления. |
EnumerateFiles(String, SearchOption) |
Возвращает перечисляемую коллекцию сведений о файлах, соответствующую указанному шаблону поиска и параметру поиска в подкаталогах. |
EnumerateFileSystemInfos() |
Возвращает перечисляемую коллекцию сведений о файловой системе текущего каталога. |
EnumerateFileSystemInfos(String) |
Возвращает перечисляемую коллекцию сведений о файловой системе, соответствующую указанному шаблону поиска. |
EnumerateFileSystemInfos(String, EnumerationOptions) |
Возвращает перечисляемую коллекцию сведений о файловой системе, соответствующую указанному шаблону поиска и параметрам перечисления. |
EnumerateFileSystemInfos(String, SearchOption) |
Возвращает перечисляемую коллекцию сведений о файловой системе, соответствующую указанному шаблону поиска и параметру поиска в подкаталогах. |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetAccessControl() |
Получает объект DirectorySecurity, который инкапсулирует записи списка управления доступом (ACL) для каталога, описываемого текущим объектом DirectoryInfo. |
GetAccessControl(AccessControlSections) |
Получает объект DirectorySecurity, который инкапсулирует заданный тип записей списка управления доступом для каталога, описываемого текущим объектом DirectoryInfo. |
GetDirectories() |
Возвращает подкаталоги текущего каталога. |
GetDirectories(String) |
Возвращает массив каталогов текущего объекта DirectoryInfo, отвечающих заданным условиям поиска. |
GetDirectories(String, EnumerationOptions) |
Возвращает массив каталогов при использовании DirectoryInfo, соответствующий указанному шаблону поиска и параметрам перечисления. |
GetDirectories(String, SearchOption) |
Возвращает массив каталогов в текущем объекте DirectoryInfo, отвечающих заданным условиям поиска, с использованием значения, которое позволяет определить, следует ли выполнять поиск в подкаталогах. |
GetFiles() |
Возвращает список файлов текущего каталога. |
GetFiles(String) |
Возвращает список файлов текущего каталога, соответствующих заданному шаблону поиска. |
GetFiles(String, EnumerationOptions) |
Возвращает список файлов из текущего каталога, соответствующий указанному шаблону поиска и параметрам перечисления. |
GetFiles(String, SearchOption) |
Возвращает список файлов из текущего каталога, соответствующих заданному шаблону поиска, с использованием значения, которое позволяет определить, следует ли выполнять поиск в подкаталогах. |
GetFileSystemInfos() |
Возвращает массив строго типизированных объектов FileSystemInfo, представляющих все файлы и подкаталоги в том или ином каталоге. |
GetFileSystemInfos(String) |
Извлекает массив строго типизированных объектов FileSystemInfo, представляющих файлы и подкаталоги, соответствующие заданным критериям поиска. |
GetFileSystemInfos(String, EnumerationOptions) |
Извлекает массив строго типизированных объектов FileSystemInfo, представляющих файлы и подкаталоги, соответствующие указанному шаблону поиска и параметрам перечисления. |
GetFileSystemInfos(String, SearchOption) |
Извлекает массив объектов FileSystemInfo, представляющих файлы и подкаталоги, соответствующие заданным критериям поиска. |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetLifetimeService() |
Устаревшие..
Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра. (Унаследовано от MarshalByRefObject) |
GetObjectData(SerializationInfo, StreamingContext) |
Устаревшие..
Устанавливает объект SerializationInfo с именем файла и дополнительными сведениями об исключении. (Унаследовано от FileSystemInfo) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
InitializeLifetimeService() |
Устаревшие..
Получает объект службы времени существования для управления политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
MemberwiseClone(Boolean) |
Создает неполную копию текущего объекта MarshalByRefObject. (Унаследовано от MarshalByRefObject) |
MoveTo(String) |
Перемещает экземпляр DirectoryInfo и его содержимое в местоположение, на которое указывает новый путь. |
Refresh() |
Обновляет состояние объекта. (Унаследовано от FileSystemInfo) |
ResolveLinkTarget(Boolean) |
Возвращает целевой объект указанной ссылки. (Унаследовано от FileSystemInfo) |
SetAccessControl(DirectorySecurity) |
Применяет записи списка управления доступом (ACL), описанные объектом DirectorySecurity, к каталогу, который описывается текущим объектом DirectoryInfo. |
ToString() |
Возвращает исходный путь, переданный в конструктор DirectoryInfo. Используйте свойства FullName или Name для полного пути или имени файла или каталога вместо этого метода. |
ToString() |
Возвращает исходный путь. Используйте свойства FullName или Name для полного пути или имени файла или каталога. (Унаследовано от FileSystemInfo) |
Методы расширения
Create(DirectoryInfo, DirectorySecurity) |
Создает каталог с указанными атрибутами безопасности. Если каталог уже существует, ничего не происходит. |
GetAccessControl(DirectoryInfo) |
Возвращает сведения о безопасности для каталога. |
GetAccessControl(DirectoryInfo, AccessControlSections) |
Возвращает сведения о безопасности для каталога. |
SetAccessControl(DirectoryInfo, DirectorySecurity) |
Изменяет атрибуты безопасности для существующего каталога. |