Directory Класс

Определение

Предоставляет статические методы для создания, перемещения и перечисления в каталогах и вложенных каталогах.Exposes static methods for creating, moving, and enumerating through directories and subdirectories. Этот класс не наследуется.This class cannot be inherited.

public ref class Directory abstract sealed
[System.Runtime.InteropServices.ComVisible(true)]
public static class Directory
type Directory = class
Public Class Directory
Наследование
Directory
Атрибуты

Примеры

В следующем примере показано, как извлечь все текстовые файлы из каталога и переместить их в новый каталог.The following example shows how to retrieve all the text files from a directory and move them to a new directory. После перемещения файлы больше не существуют в исходном каталоге.After the files are moved, they no longer exist in the original directory.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            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);
            }
        }
    }
}
Imports System.IO

Module Module1

    Sub Main()
        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 Module

В следующем примере показано, как использовать метод EnumerateFiles для получения коллекции текстовых файлов из каталога, а затем использовать эту коллекцию в запросе для поиска всех строк, содержащих "example".The following example demonstrates how to use the EnumerateFiles method to retrieve a collection of text files from a directory, and then use that collection in a query to find all the lines that contain "Example".

using System;
using System.IO;
using System.Linq;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            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());
        }
    }
}
Imports System.IO

Module Module1

    Sub Main()
        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 Module

В следующем примере показано, как переместить каталог и все его файлы в новый каталог.The following example demonstrates how to move a directory and all its files to a new directory. Исходный каталог больше не существует после перемещения.The original directory no longer exists after it has been moved.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\source";
            string destinationDirectory = @"C:\destination";

            try
            {
                Directory.Move(sourceDirectory, destinationDirectory);  
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
Imports System.IO

Module Module1

    Sub Main()
        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 Module

Комментарии

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

  • Чтобы создать каталог, используйте один из методов CreateDirectory.To create a directory, use one of the CreateDirectory methods.

  • Чтобы удалить каталог, используйте один из методов Delete.To delete a directory, use one of the Delete methods.

  • Чтобы получить или задать текущий каталог для приложения, используйте метод GetCurrentDirectory или SetCurrentDirectory.To get or set the current directory for an app, use the GetCurrentDirectory or SetCurrentDirectory method.

  • Чтобы управлять DateTime сведениями, связанными с созданием, доступом и записью каталога, используйте такие методы, как SetLastAccessTime и SetCreationTime.To manipulate DateTime information related to the creation, access, and writing of a directory, use methods such as SetLastAccessTime and SetCreationTime.

Статические методы класса Directory выполняют проверку безопасности для всех методов.The static methods of the Directory class perform security checks on all methods. Если вы собираетесь повторно использовать объект несколько раз, рассмотрите возможность использования соответствующего метода экземпляра DirectoryInfo вместо этого, так как проверка безопасности не всегда будет требоваться.If you are going to reuse an object several times, consider using the corresponding instance method of DirectoryInfo instead, because the security check will not always be necessary.

Если вы выполняете только одно действие, связанное с каталогом, возможно, более эффективно использовать статический Directory метод, а не соответствующий метод экземпляра DirectoryInfo.If you are performing only one directory-related action, it might be more efficient to use a static Directory method rather than a corresponding DirectoryInfo instance method. Для большинства методов Directory требуется путь к каталогу, к которому выполняется управление.Most Directory methods require the path to the directory that you are manipulating.

Примечание

В членах, принимающих строковый path параметр, этот путь должен иметь правильный формат или возникнет исключение.In members that accept a string path parameter, that path must be well-formed or an exception is raised. Например, если путь является полным, но начинается с пробела ("c:\temp"), строка пути не усекается, поэтому путь считается некорректным и возникает исключение.For example, if a path is fully qualified but begins with a space (" c:\temp"), the path string isn't trimmed, so the path is considered malformed and an exception is raised. Кроме того, путь или сочетание путей не могут быть полностью определены дважды.In addition, 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. При использовании методов, принимающих строку пути, убедитесь, что пути имеют правильный формат.Ensure that your paths are well-formed when using methods that accept a path string. Дополнительные сведения см. в разделе Path.For more information see Path.

В членах, принимающих путь, путь может ссылаться на файл или каталог.In members that accept a path, the path can refer to a file or a directory. Можно использовать полный путь, относительный путь или путь в формате UNC для имени сервера и общего ресурса.You can use a full path, 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" in C#, or "c:\MyDir" in Visual Basic.

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

  • "\\\\Мисервер\\Мишаре" in 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. Однако приложение должно иметь правильную защиту для доступа к существующим каталогам.However, the app must have the correct security to access existing directories.

Чтобы запросить разрешения для каталога и всех его подкаталогов, Завершите строку пути с помощью символа разделителя каталога.To demand permissions for a directory and all its subdirectories, end the path string with the directory separator character. (Например, "C:\Temp\" предоставляет доступ к C:\Temp\ и всем его подкаталогам.) Чтобы запросить разрешения только для определенного каталога, Завершите строку пути точкой.(For example, "C:\Temp\" grants access to C:\Temp\ and all its subdirectories.) To demand permissions only for a specific directory, end the path string with a period. (Например, «C:\Temp\».(For example, "C:\Temp\." предоставляет доступ только к C:\Temp\, а не к его подкаталогам.)grants access only to C:\Temp\, not to its subdirectories.)

В членах, принимающих параметр searchPattern, строка поиска может быть любым сочетанием литеральных символов и двумя подстановочными знаками. * и?.In members that accept a searchPattern parameter, the search string can be any combination of literal characters and two wildcard characters; * and ?. Этот параметр не распознает регулярные выражения.This parameter does not recognize regular expressions. Дополнительные сведения см. в описании метода EnumerateDirectories(String, String) или любого другого метода, использующего параметр searchPattern.For more information, see the EnumerateDirectories(String, String) method or any other method that uses the searchPattern parameter.

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

Directory и DirectoryInfo не поддерживаются в приложениях Магазин WindowsWindows Store.Directory and DirectoryInfo are not supported for use in Магазин WindowsWindows Store apps. Сведения о доступе к файлам и папкам в Магазин WindowsWindows Store приложениях см. в разделе доступ к данным и файлам (приложения для Магазина Windows).For information about how to access files and folders in Магазин WindowsWindows Store apps, see Accessing data and files (Windows Store apps).

Методы

CreateDirectory(String)

Создает все каталоги и подкаталоги по указанному пути, если они еще не существуют.Creates all directories and subdirectories in the specified path unless they already exist.

CreateDirectory(String, DirectorySecurity)

Создает все каталоги по указанному пути, если они еще не существуют, с применением заданных параметров безопасности Windows.Creates all the directories in the specified path, unless they already exist, applying the specified Windows security.

Delete(String)

Удаляет пустой каталог по заданному пути.Deletes an empty directory from a specified path.

Delete(String, Boolean)

Удаляет заданный каталог и, при наличии соответствующей инструкции, все подкаталоги и файлы в нем.Deletes the specified directory and, if indicated, any subdirectories and files in the directory.

EnumerateDirectories(String)

Возвращает перечисляемую коллекцию полных имен каталогов, расположенных по указанному пути.Returns an enumerable collection of directory full names in a specified path.

EnumerateDirectories(String, String)

Возвращает перечисляемую коллекцию полных имен каталогов, соответствующих шаблону поиска по указанному пути.Returns an enumerable collection of directory full names that match a search pattern in a specified path.

EnumerateDirectories(String, String, EnumerationOptions)

Возвращает перечисляемую коллекцию полных имен каталогов, соответствующих шаблону поиска по указанному пути. Возможно, поиск ведется также и в подкаталогах.Returns an enumerable collection of the directory full names that match a search pattern in a specified path, and optionally searches subdirectories.

EnumerateDirectories(String, String, SearchOption)

Возвращает перечисляемую коллекцию полных имен каталогов, соответствующих шаблону поиска по указанному пути. Возможно, поиск ведется также и в подкаталогах.Returns an enumerable collection of directory full names that match a search pattern in a specified path, and optionally searches subdirectories.

EnumerateFiles(String)

Возвращает перечисляемую коллекцию полных имен файлов, расположенных по указанному пути.Returns an enumerable collection of full file names in a specified path.

EnumerateFiles(String, String)

Возвращает перечисляемую коллекцию полных имен файлов, соответствующих шаблону поиска по указанному пути.Returns an enumerable collection of full file names that match a search pattern in a specified path.

EnumerateFiles(String, String, EnumerationOptions)

Возвращает перечисляемую коллекцию полных имен файлов, соответствующих шаблону поиска и параметрам перечисления по указанному пути. Возможно, поиск ведется также и в подкаталогах.Returns an enumerable collection of full file names that match a search pattern and enumeration options in a specified path, and optionally searches subdirectories.

EnumerateFiles(String, String, SearchOption)

Возвращает перечисляемую коллекцию полных имен файлов, соответствующих шаблону поиска по указанному пути. Возможно, поиск ведется также и в подкаталогах.Returns an enumerable collection of full file names that match a search pattern in a specified path, and optionally searches subdirectories.

EnumerateFileSystemEntries(String)

Возвращает перечисляемую коллекцию имен файлов и имен каталогов по указанному пути.Returns an enumerable collection of file names and directory names in a specified path.

EnumerateFileSystemEntries(String, String)

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

EnumerateFileSystemEntries(String, String, EnumerationOptions)

Возвращает перечисляемую коллекцию имен файлов и имен каталогов по указанному пути, соответствующих шаблону поиска и параметрам перечисления.Returns an enumerable collection of file names and directory names that match a search pattern and enumeration options in a specified path.

EnumerateFileSystemEntries(String, String, SearchOption)

Возвращает перечисляемую коллекцию записей файловой системы, соответствующих шаблону поиска по указанному пути. Возможно, поиск ведется также и в подкаталогах.Returns an enumerable collection of file names and directory names that match a search pattern in a specified path, and optionally searches subdirectories.

Exists(String)

Определяет, указывает ли заданный путь на существующий каталог на диске.Determines whether the given path refers to an existing directory on disk.

GetAccessControl(String)

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

GetAccessControl(String, AccessControlSections)

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

GetCreationTime(String)

Получает дату и время создания каталога.Gets the creation date and time of a directory.

GetCreationTimeUtc(String)

Получает время и дату создания каталога в формате всемирного координированного времени (UTC).Gets the creation date and time, in Coordinated Universal Time (UTC) format, of a directory.

GetCurrentDirectory()

Получает текущий рабочий каталог приложения.Gets the current working directory of the application.

GetDirectories(String)

Возвращает имена подкаталогов (включая пути) в указанном каталоге.Returns the names of subdirectories (including their paths) in the specified directory.

GetDirectories(String, String)

Возвращает имена подкаталогов (включая пути) в указанном каталоге, соответствующих указанному шаблону поиска.Returns the names of subdirectories (including their paths) that match the specified search pattern in the specified directory.

GetDirectories(String, String, EnumerationOptions)

Возвращает имена подкаталогов (включая пути) в указанном каталоге, соответствующих заданному шаблону поиска и параметрам перечисления.Returns the names of subdirectories (including their paths) that match the specified search pattern and enumeration options in the specified directory.

GetDirectories(String, String, SearchOption)

Возвращает имена подкаталогов (включая пути) в указанном каталоге, соответствующих указанному шаблону поиска, и при необходимости ведет поиск в подкаталогах.Returns the names of the subdirectories (including their paths) that match the specified search pattern in the specified directory, and optionally searches subdirectories.

GetDirectoryRoot(String)

Возвращает для заданного пути сведения о томе и корневом каталоге по отдельности или сразу.Returns the volume information, root information, or both for the specified path.

GetFiles(String)

Возвращает имена файлов (с указанием пути к ним) в указанном каталоге.Returns the names of files (including their paths) in the specified directory.

GetFiles(String, String)

Возвращает имена файлов (включая пути) из указанного каталога, отвечающие условиям заданного шаблона поиска.Returns the names of files (including their paths) that match the specified search pattern in the specified directory.

GetFiles(String, String, EnumerationOptions)

Возвращает имена файлов (включая пути) в указанном каталоге, соответствующих заданному шаблону поиска и параметрам перечисления.Returns the names of files (including their paths) that match the specified search pattern and enumeration options in the specified directory.

GetFiles(String, String, SearchOption)

Возвращает имена файлов (включая пути) в заданном каталоге, отвечающие условиям шаблона поиска, используя значение, которое определяет, выполнять ли поиск в подкаталогах.Returns the names of files (including their paths) that match the specified search pattern in the specified directory, using a value to determine whether to search subdirectories.

GetFileSystemEntries(String)

Возвращает имена всех файлов и подкаталогов по указанному пути.Returns the names of all files and subdirectories in a specified path.

GetFileSystemEntries(String, String)

Возвращает массив имен файлов и имен каталогов по указанному пути, соответствующих шаблону поиска.Returns an array of file names and directory names that match a search pattern in a specified path.

GetFileSystemEntries(String, String, EnumerationOptions)

Возвращает массив имен файлов и имен каталогов по указанному пути, соответствующих шаблону поиска и параметрам перечисления.Returns an array of file names and directory names that match a search pattern and enumeration options in a specified path.

GetFileSystemEntries(String, String, SearchOption)

Возвращает массив всех имен файлов и каталогов по указанному пути, соответствующих шаблону поиска, и при необходимости ведет поиск в подкаталогах.Returns an array of all the file names and directory names that match a search pattern in a specified path, and optionally searches subdirectories.

GetLastAccessTime(String)

Возвращает время и дату последнего обращения к указанному файлу или каталогу.Returns the date and time the specified file or directory was last accessed.

GetLastAccessTimeUtc(String)

Возвращает дату и время последнего доступа к заданному файлу или каталогу в формате всемирного координированного времени (UTC).Returns the date and time, in Coordinated Universal Time (UTC) format, that the specified file or directory was last accessed.

GetLastWriteTime(String)

Возвращает время и дату последней операции записи в указанный файл или каталог.Returns the date and time the specified file or directory was last written to.

GetLastWriteTimeUtc(String)

Возвращает дату и время последней операции записи в заданный файл или каталог в формате всемирного координированного времени (UTC).Returns the date and time, in Coordinated Universal Time (UTC) format, that the specified file or directory was last written to.

GetLogicalDrives()

Извлекает имена логических дисков данного компьютера в формате "<буква диска>:\".Retrieves the names of the logical drives on this computer in the form "<drive letter>:\".

GetParent(String)

Извлекает родительский каталог, на который указывает абсолютный или относительный путь.Retrieves the parent directory of the specified path, including both absolute and relative paths.

Move(String, String)

Перемещает файл или каталог со всем его содержимым в новое местоположение.Moves a file or a directory and its contents to a new location.

SetAccessControl(String, DirectorySecurity)

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

SetCreationTime(String, DateTime)

Устанавливает дату и время создания заданного файла или каталога.Sets the creation date and time for the specified file or directory.

SetCreationTimeUtc(String, DateTime)

Устанавливает дату и время создания указанного файла или папки в формате всемирного координированного времени (UTC).Sets the creation date and time, in Coordinated Universal Time (UTC) format, for the specified file or directory.

SetCurrentDirectory(String)

Устанавливает заданный каталог в качестве текущего рабочего каталога приложения.Sets the application's current working directory to the specified directory.

SetLastAccessTime(String, DateTime)

Устанавливает время и дату последнего обращения к заданному файлу или каталогу.Sets the date and time the specified file or directory was last accessed.

SetLastAccessTimeUtc(String, DateTime)

Устанавливает дату и время последнего доступа к заданному файлу или каталогу в формате всемирного координированного времени (UTC).Sets the date and time, in Coordinated Universal Time (UTC) format, that the specified file or directory was last accessed.

SetLastWriteTime(String, DateTime)

Устанавливает дату и время последней записи в файл или каталог.Sets the date and time a directory was last written to.

SetLastWriteTimeUtc(String, DateTime)

Устанавливает дату и время последней записи в заданный каталог в формате всемирного координированного времени (UTC).Sets the date and time, in Coordinated Universal Time (UTC) format, that a directory was last written to.

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

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