Создать директорию c#. Класс Directory. C# запускаем поиск файлов

Классы Directory и DirectoryInfo

DirectoryInfo содержит набор членов, используемых для создания, перемещения, удаления и перечисления каталогов и подкаталогов. В дополнение к функциональности, предоставленной базовым классом (FileSystemInfo), DirectoryInfo предлагает ключевые члены, перечисленные ниже:

Create(), CreateSubdirectorу()

Создает каталог (или набор подкаталогов) по заданному путевому имени

Список файлов в каталоге

Когда файла больше нет, мы получаем пустую строку. В этом примере мы показываем местоположение файла.

Количество файлов в каталоге и размере

Количество файлов в каталоге. Список каталогов в каталоге. Синтез нескольких книг. Переместить перед: = Листы листов. Перемещение файлов из одного каталога в другой с помощью имени. Мы получаем таблицу с именами выбранных файлов.

Дерево каталога и его файлов

Размер ячейки = папка.

Дерево подкаталогов каталога

Дерево подкаталогов каталога с фигурами. Дерево каталогов и открытие выбранного файла. Поиск в каталоге. Выберите «Конец», если Вкл. Ошибка, «Следующее резюме» для каждой папки «В папке». В каталогах текущего каталога.

Дерево подкаталогов текущего каталога

Проверить, открыт ли файл. Чтобы получить количество листов в книге.

Delete()

Удаляет каталог и все его содержимое

GetDirectories()

Возвращает массив объектов DirectoryInfo, представляющих все подкаталоги в текущем каталоге

GetFiles()

Извлекает массив объектов FileInfo, представляющий множество файлов в заданном каталоге

MoveTo()

Перемещает каталог со всем содержимым по новому пути

Parent

Извлекает родительский каталог данного каталога

Root

Получает корневую часть пути

Работа с типом DirectoryInfo начинается с указания определенного пути в качестве параметра конструктора. Если требуется получить доступ к текущему рабочему каталогу (т.е. каталогу выполняющегося приложения), применяйте нотацию ".". Вот некоторые примеры:

// Привязаться к текущему рабочему каталогу DirectoryInfo dir1 = new DirectoryInfo("."); // Привязаться к C:\Windows DirectoryInfo dir2 = new DirectoryInfo(@"C:\Windows");

Во втором примере делается предположение, что переданный в конструктор путь (C:\Windows) физически существует на машине. При попытке взаимодействовать с несуществующим каталогом будет сгенерировано исключение System.IO.DirectoryNotFoundException . Таким образом, чтобы указать каталог, который пока еще не создан, сначала придется вызвать метод Create():

// Привязаться к несуществующему каталогу, затем создать его DirectoryInfo dir3 = new DirectoryInfo(@"C:\MyCode\Testing"); dir3.Create();

После создания объекта DirectoryInfo можно исследовать его содержимое, используя любое свойство, унаследованное от FileSystemInfo. Например:

Using System; using System.IO; namespace ConsoleApplication15_DirectoryInfo { class Program { static void Main() { ShowWindowsDirectoryInfo(); } // Выводим информацию о каталоге static void ShowWindowsDirectoryInfo() { DirectoryInfo dir = new DirectoryInfo(@"C:\Windows"); Console.WriteLine("***** Информация о каталоге *****\n"); Console.WriteLine("Полный путь: {0}\nНазвание папки: {1}\nРодительский каталог: {2}\n" + "Время создания: {3}\nАтрибуты: {4}\nКорневой каталог: {5}", dir.FullName,dir.Name,dir.Parent,dir.CreationTime,dir.Attributes,dir.Root); Console.ReadLine(); } } }

В дополнение к получению базовых деталей о существующем каталоге можно расширить текущий пример использованием некоторых методов типа DirectoryInfo. Для начала применим метод GetFiles() для получения информации обо всех файлах *.jpg, расположенных в каталоге C:\Windows\Web\Wallpaper. Если на вашей машине нет каталога C:\Windows\Web\Wallpaper, измените код для чтения файлов из какого-то существующего каталога (например, прочитайте все файлы *.bmp из каталога C:\Windows).

Метод GetFiles() возвращает массив объектов типа FileInfo, каждый из которых представляет детальную информацию о конкретном файле. Предположим, что следующий статический метод класса Program вызывается в методе Main():

Static void ImageDisplayFiles() { DirectoryInfo dir = new DirectoryInfo("C:\\Windows\\Web\\Wallpaper"); // Получить все файлы с расширением.jpg FileInfo imageFiles = dir.GetFiles("*.jpg",SearchOption.AllDirectories); // Сколько файлов найдено Console.WriteLine("Найдено {0} картинок",imageFiles.Length); // Вывести информацию о каждом файле foreach (FileInfo f in imageFiles) { Console.WriteLine("\n******************\n"); Console.WriteLine("Имя файла: "+f.Name); Console.WriteLine("Размер файла: "+f.Length); Console.WriteLine("Время создания файла: " + f.CreationTime); } Console.ReadLine(); }


Обратите внимание на указание в вызове GetFiles() опции поиска; SearchOption.AllDirectories обеспечивает просмотр всех подкаталогов корня. После запуска этого приложения получается список файлов, отвечающих критерию поиска.

Use the T:System.IO.Directory class for typical operations such as copying, moving, renaming, creating, and deleting directories.

    To create a directory, use one of the M:System.IO.Directory.CreateDirectory(System.String) methods.

    To delete a directory, use one of the M:System.IO.Directory.Delete(System.String) methods.

    To get or set the current directory for an app, use the M:System.IO.Directory.GetCurrentDirectory or M:System.IO.Directory.SetCurrentDirectory(System.String) method.

    To manipulate T:System.DateTime information related to the creation, access, and writing of a directory, use methods such as M:System.IO.Directory.SetLastAccessTime(System.String,System.DateTime) and M:System.IO.Directory.SetCreationTime(System.String,System.DateTime).

The static methods of the T:System.IO.Directory class perform security check s on all methods. If you are going to reuse an object several times, consider using the corresponding instance method of T:System.IO.DirectoryInfo instead, because the security check will not always be necessary.

If you are performing only one directory-related action, it might be more efficient to use a static T:System.IO.Directory method rather than a corresponding T:System.IO.DirectoryInfo instance method. Most T:System.IO.Directory methods require the path to the directory that you are manipulating.

Примечание

In members that accept a string path parameter, that path must be well-formed or an exception is raised. 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. 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. For more information see T:System.IO.Path.

In members that accept a path, the path can refer to a file or a directory. 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:\\MyDir" in C#, or "c:\MyDir" in Visual Basic.

    "MyDir\\MySubdir" in C#, or "MyDir\MySubDir" in 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. (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. (For example, "C:\Temp\." grants access only to C:\Temp\, not to its subdirectories.)

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. For more information, see the M:System.IO.Directory.EnumerateDirectories(System.String,System.String) method or any other method that uses the searchPattern parameter.

For a list of common I/O tasks, see Common I/O Tasks.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: