Directory Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет статические методы для создания, перемещения и перечисления с помощью каталогов и подкаталогов. Этот класс не может быть унаследован.
public ref class Directory abstract sealed
public ref class Directory sealed
public static class Directory
public sealed class Directory
[System.Runtime.InteropServices.ComVisible(true)]
public static class Directory
type Directory = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type Directory = class
Public Class Directory
Public NotInheritable Class Directory
- Наследование
-
Directory
- Атрибуты
Примеры
В следующем примере показано, как получить все текстовые файлы из каталога и переместить их в новый каталог. После перемещения файлов они больше не существуют в исходном каталоге.
using System;
using System.IO;
partial class Example1
{
static void TwoStringsExample()
{
string sourceDirectory = @"C:\current";
string archiveDirectory = @"C:\archive";
try
{
var txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt");
foreach (string currentFile in txtFiles)
{
string fileName = currentFile.Substring(sourceDirectory.Length + 1);
Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName));
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
open System.IO
let sourceDirectory = @"C:\current"
let archiveDirectory = @"C:\archive"
try
let txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt")
for currentFile in txtFiles do
let fileName = currentFile.Substring(sourceDirectory.Length + 1)
Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))
with e ->
printfn $"{e.Message}"
Imports System.IO
Partial Class Example1
Shared Sub TwoStringExample()
Dim sourceDirectory As String = "C:\current"
Dim archiveDirectory As String = "C:\archive"
Try
Dim txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt")
For Each currentFile As String In txtFiles
Dim fileName = currentFile.Substring(sourceDirectory.Length + 1)
Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))
Next
Catch e As Exception
Console.WriteLine(e.Message)
End Try
End Sub
End Class
В следующем примере показано, как использовать EnumerateFiles метод для получения коллекции текстовых файлов из каталога, а затем использовать ее в запросе для поиска всех строк, содержащих "Example".
using System;
using System.IO;
using System.Linq;
partial class Program
{
static void EnumerateFilesExample()
{
string archiveDirectory = @"C:\archive";
var files = from retrievedFile in Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories)
from line in File.ReadLines(retrievedFile)
where line.Contains("Example")
select new
{
File = retrievedFile,
Line = line
};
foreach (var f in files)
{
Console.WriteLine("{0} contains {1}", f.File, f.Line);
}
Console.WriteLine("{0} lines found.", files.Count().ToString());
}
}
open System.IO
let archiveDirectory = @"C:\archive"
let files =
query {
for retrivedFile in Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories) do
for line in File.ReadLines retrivedFile do
where (line.Contains "file")
select
{| File = retrivedFile
Line = line |}
}
for f in files do
printfn $"{f.File} contains {f.Line}"
printfn "{Seq.length files} lines found."
Imports System.IO
Partial Class Program
Shared Sub EnumerateFilesExample()
Dim archiveDirectory As String = "C:\archive"
Dim files = From retrievedFile In Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories)
From line In File.ReadLines(retrievedFile)
Where line.Contains("Example")
Select New With {.curFile = retrievedFile, .curLine = line}
For Each f In files
Console.WriteLine("{0} contains {1}", f.curFile, f.curLine)
Next
Console.WriteLine("{0} lines found.", files.Count.ToString())
End Sub
End Class
В следующем примере показано, как переместить каталог и все его файлы в новый каталог. Исходный каталог больше не существует после перемещения.
using System;
using System.IO;
partial class Program
{
static void DirectoryMoveExample()
{
string sourceDirectory = @"C:\source";
string destinationDirectory = @"C:\destination";
try
{
Directory.Move(sourceDirectory, destinationDirectory);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
open System.IO
let sourceDirectory = @"C:\source"
let destinationDirectory = @"C:\destination"
try
Directory.Move(sourceDirectory, destinationDirectory)
with e ->
printfn $"{e.Message}"
Imports System.IO
Partial Class Program
Shared Sub DirectoryMoveExample()
Dim sourceDirectory As String = "C:\source"
Dim destinationDirectory As String = "C:\destination"
Try
Directory.Move(sourceDirectory, destinationDirectory)
Catch e As Exception
Console.WriteLine(e.Message)
End Try
End Sub
End Class
Комментарии
Directory Используйте класс для типичных операций, таких как копирование, перемещение, переименование, создание и удаление каталогов.
Чтобы создать каталог, используйте один из CreateDirectory методов.
Чтобы удалить каталог, используйте один из Delete методов.
Чтобы получить или задать текущий каталог для приложения, используйте GetCurrentDirectorySetCurrentDirectory или метод.
Для управления DateTime информацией, связанной с созданием, доступом и записью каталога, используйте такие методы, как SetLastAccessTime и SetCreationTime.
Статические методы Directory класса выполняют проверки безопасности для всех методов. Если вы собираетесь повторно использовать объект несколько раз, рассмотрите возможность использования соответствующего метода экземпляра DirectoryInfo , так как проверка безопасности не всегда потребуется.
Если выполняется только одно действие, связанное с каталогом, возможно, будет эффективнее использовать статический Directory метод, а не соответствующий DirectoryInfo метод экземпляра. Большинству Directory методов требуется путь к каталогу, который вы управляете.
Note
В членах, которые принимают строковый path параметр, этот путь должен быть хорошо сформирован или создается исключение. Например, если путь является полным, но начинается с пробела ("c:\temp"), строка пути не обрезана, поэтому путь считается неправильным и создается исключение. Кроме того, путь или сочетание путей не может быть полностью полный дважды. Например, "c:\temp c:\windows" также вызывает исключение. Убедитесь, что пути хорошо сформированы при использовании методов, которые принимают строку пути. Дополнительные сведения см. по адресу Path.
В членах, которые принимают путь, путь может ссылаться на файл или каталог. Вы можете использовать полный путь, относительный путь или UNC-путь для сервера и имени общего ресурса. Например, все следующие возможные пути:
C:\\MyDir в C#или c:\MyDir в Visual Basic.
"MyDir\\MySubdir" в C# или "MyDir\MySubDir" в Visual Basic.
"\MyServer\\MyShare" в C#или \\MyServer\MyShare в Visual Basic.
По умолчанию всем пользователям предоставляется полный доступ на чтение и запись к новым каталогам. Однако приложение должно иметь правильную безопасность для доступа к существующим каталогам.
Чтобы требовать разрешения для каталога и всех его подкаталогов, завершите строку пути символом разделителя каталогов. (Например, "C:\Temp\" предоставляет доступ к C:\Temp\ и всем его подкаталогам.) Чтобы требовать разрешения только для определенного каталога, завершите строку пути точкой. (Например, "C:\Temp\". предоставляет доступ только к C:\Temp\, а не к подкаталогам.)
В членах, которые принимают searchPattern параметр, строка поиска может быть любой комбинацией литеральных символов и двух подстановочных знаков; * и ?. Этот параметр не распознает регулярные выражения. Дополнительные сведения см. в методе или любом другом методе EnumerateDirectories(String, String) , использующего searchPattern параметр.
Список распространенных задач ввода-вывода см. в разделе Распространенные задачи ввода-вывода.
Методы
| Имя | Описание |
|---|---|
| CreateDirectory(String, DirectorySecurity) |
Создает все каталоги в указанном пути, если они еще не существуют, применяя указанную безопасность Windows. |
| CreateDirectory(String, UnixFileMode) |
Создает все каталоги и вложенные каталоги в указанном пути с указанными разрешениями, если они еще не существуют. |
| CreateDirectory(String) |
Создает все каталоги и вложенные каталоги в указанном пути, если они еще не существуют. |
| CreateSymbolicLink(String, String) |
Создает символьную ссылку каталога, определяемую этим указателем |
| CreateTempSubdirectory(String) |
Создает уникально именованный пустой каталог в временном каталоге текущего пользователя. |
| Delete(String, Boolean) |
Удаляет указанный каталог и, если указано, все вложенные каталоги и файлы в каталоге. |
| Delete(String) |
Удаляет пустой каталог из указанного пути. |
| EnumerateDirectories(String, String, EnumerationOptions) |
Возвращает перечисленную коллекцию полных имен каталога, соответствующих шаблону поиска в указанном пути, и при необходимости выполняет поиск подкаталогов. |
| EnumerateDirectories(String, String, SearchOption) |
Возвращает перечисленную коллекцию полных имен каталога, соответствующих шаблону поиска в указанном пути, и при необходимости выполняет поиск подкаталогов. |
| EnumerateDirectories(String, String) |
Возвращает перечисленную коллекцию полных имен каталога, соответствующих шаблону поиска в указанном пути. |
| EnumerateDirectories(String) |
Возвращает перечисленную коллекцию полных имен каталога в указанном пути. |
| EnumerateFiles(String, String, EnumerationOptions) |
Возвращает перечисленную коллекцию полных имен файлов, соответствующих шаблону поиска и параметрам перечисления в указанном пути, а также при необходимости выполняет поиск подкаталогов. |
| EnumerateFiles(String, String, SearchOption) |
Возвращает перечисленную коллекцию полных имен файлов, соответствующих шаблону поиска в указанном пути, и при необходимости выполняет поиск подкаталогов. |
| EnumerateFiles(String, String) |
Возвращает перечисленную коллекцию полных имен файлов, которые соответствуют шаблону поиска в указанном пути. |
| EnumerateFiles(String) |
Возвращает перечисленную коллекцию полных имен файлов в указанном пути. |
| EnumerateFileSystemEntries(String, String, EnumerationOptions) |
Возвращает перечисленную коллекцию имен файлов и имен каталогов, которые соответствуют шаблону поиска и параметрам перечисления в указанном пути. |
| EnumerateFileSystemEntries(String, String, SearchOption) |
Возвращает перечисляемую коллекцию имен файлов и имен каталогов, соответствующих шаблону поиска в указанном пути, и при необходимости выполняет поиск подкаталогов. |
| EnumerateFileSystemEntries(String, String) |
Возвращает перечисленную коллекцию имен файлов и имен каталогов, которые соответствуют шаблону поиска в указанном пути. |
| EnumerateFileSystemEntries(String) |
Возвращает перечисленную коллекцию имен файлов и имен каталогов в указанном пути. |
| Exists(String) |
Определяет, относится ли указанный путь к существующему каталогу на диске. |
| GetAccessControl(String, AccessControlSections) |
DirectorySecurity Возвращает объект, инкапсулирующий указанный тип записей списка управления доступом (ACL) для указанного каталога. |
| GetAccessControl(String) |
DirectorySecurity Возвращает объект, инкапсулирующий записи списка управления доступом (ACL) для указанного каталога. |
| GetCreationTime(String) |
Возвращает дату и время создания каталога. |
| GetCreationTimeUtc(String) |
Получает дату и время создания в формате UTC. |
| GetCurrentDirectory() |
Возвращает текущий рабочий каталог приложения. |
| GetDirectories(String, String, EnumerationOptions) |
Возвращает имена подкаталогов (включая их пути), которые соответствуют указанному шаблону поиска и параметрам перечисления в указанном каталоге. |
| GetDirectories(String, String, SearchOption) |
Возвращает имена подкаталогов (включая их пути), соответствующие указанному шаблону поиска в указанном каталоге, и при необходимости выполняет поиск подкаталогов. |
| GetDirectories(String, String) |
Возвращает имена подкаталогов (включая их пути), которые соответствуют указанному шаблону поиска в указанном каталоге. |
| GetDirectories(String) |
Возвращает имена подкаталогов (включая их пути) в указанном каталоге. |
| GetDirectoryRoot(String) |
Возвращает сведения о томе, корневые сведения или оба пути для указанного пути. |
| GetFiles(String, String, EnumerationOptions) |
Возвращает имена файлов (включая их пути), соответствующие указанному шаблону поиска и параметрам перечисления в указанном каталоге. |
| GetFiles(String, String, SearchOption) |
Возвращает имена файлов (включая их пути), которые соответствуют указанному шаблону поиска в указанном каталоге, используя значение для определения того, следует ли выполнять поиск подкаталогов. |
| GetFiles(String, String) |
Возвращает имена файлов (включая их пути), соответствующие указанному шаблону поиска в указанном каталоге. |
| GetFiles(String) |
Возвращает имена файлов (включая их пути) в указанном каталоге. |
| GetFileSystemEntries(String, String, EnumerationOptions) |
Возвращает массив имен файлов и имен каталогов, соответствующих шаблону поиска и параметрам перечисления в указанном пути. |
| GetFileSystemEntries(String, String, SearchOption) |
Возвращает массив всех имен файлов и имен каталогов, соответствующих шаблону поиска в указанном пути, и при необходимости выполняет поиск подкаталогов. |
| GetFileSystemEntries(String, String) |
Возвращает массив имен файлов и имен каталогов, которые соответствуют шаблону поиска в указанном пути. |
| GetFileSystemEntries(String) |
Возвращает имена всех файлов и подкаталогов в указанном пути. |
| GetLastAccessTime(String) |
Возвращает дату и время последнего доступа к указанному файлу или каталогу. |
| GetLastAccessTimeUtc(String) |
Возвращает дату и время в формате UTC, к которому был выполнен последний доступ к указанному файлу или каталогу. |
| GetLastWriteTime(String) |
Возвращает дату и время последнего записи указанного файла или каталога. |
| GetLastWriteTimeUtc(String) |
Возвращает дату и время в формате UTC, в который был записан указанный файл или каталог. |
| GetLogicalDrives() |
Извлекает имена логических дисков на этом компьютере. |
| GetParent(String) |
Извлекает родительский каталог указанного пути, включая абсолютные и относительные пути. |
| Move(String, String) |
Перемещает файл или каталог и его содержимое в новое расположение. |
| ResolveLinkTarget(String, Boolean) |
Возвращает целевой объект указанной ссылки каталога. |
| SetAccessControl(String, DirectorySecurity) |
Применяет записи списка управления доступом DirectorySecurity (ACL), описанные объектом, к указанному каталогу. |
| SetCreationTime(String, DateTime) |
Задает дату и время создания указанного файла или каталога. |
| SetCreationTimeUtc(String, DateTime) |
Задает дату и время создания в формате UTC для указанного файла или каталога. |
| SetCurrentDirectory(String) |
Задает текущий рабочий каталог приложения указанному каталогу. |
| SetLastAccessTime(String, DateTime) |
Задает дату и время последнего доступа к указанному файлу или каталогу. |
| SetLastAccessTimeUtc(String, DateTime) |
Задает дату и время в формате UTC, к которому последний раз был доступ к указанному файлу или каталогу. |
| SetLastWriteTime(String, DateTime) |
Задает дату и время последнего записи каталога. |
| SetLastWriteTimeUtc(String, DateTime) |
Задает дату и время в формате UTC, в котором был записан каталог. |