Как создать директорию c
Для работы с каталогами в пространстве имен System.IO предназначены сразу два класса: Directory и DirectoryInfo .
Класс Directory
Статический класс Directory предоставляет ряд методов для управления каталогами. Некоторые из этих методов:
CreateDirectory(path) : создает каталог по указанному пути path
Delete(path) : удаляет каталог по указанному пути path
Exists(path) : определяет, существует ли каталог по указанному пути path. Если существует, возвращается true , если не существует, то false
GetCurrentDirectory() : получает путь к текущей папке
GetDirectories(path) : получает список подкаталогов в каталоге path
GetFiles(path) : получает список файлов в каталоге path
GetFileSystemEntries(path) : получает список подкаталогов и файлов в каталоге path
Move(sourceDirName, destDirName) : перемещает каталог
GetParent(path) : получение родительского каталога
GetLastWriteTime(path) : возвращает время последнего изменения каталога
GetLastAccessTime(path) : возвращает время последнего обращения к каталогу
GetCreationTime(path) : возвращает время создания каталога
Класс DirectoryInfo
Данный класс предоставляет функциональность для создания, удаления, перемещения и других операций с каталогами. Во многом он похож на Directory, но не является статическим.
Для создания объекта класса DirectoryInfo применяется конструктор, который в качестве параметра принимает путь к каталогу:
Основные методы класса DirectoryInfo :
Create() : создает каталог
CreateSubdirectory(path) : создает подкаталог по указанному пути path
Delete() : удаляет каталог
GetDirectories() : получает список подкаталогов папки в виде массива DirectoryInfo
GetFiles() : получает список файлов в папке в виде массива FileInfo
MoveTo(destDirName) : перемещает каталог
Основные свойства класса DirectoryInfo :
CreationTime : представляет время создания каталога
LastAccessTime : представляет время последнего доступа к каталогу
LastWriteTime : представляет время последнего изменения каталога
Exists : определяет, существует ли каталог
Parent : получение родительского каталога
Root : получение корневого каталога
Name : имя каталога
FullName : полный путь к каталогу
Directory или DirectoryInfo
Как видно из функционала, оба класса предоставляют похожие возможности. Когда же и что использовать? Если надо совершить одну-две операции с одним каталогом, то проще использовать класс Directory. Если необходимо выполнить последовательность операций с одним и тем же каталогом, то лучше воспользоваться классом DirectoryInfo. Почему? Дело в том, что методы класса Directory выполняют дополнительные проверки безопасности. А для класса DirectoryInfo такие проверки не всегда обязательны.
Посмотрим на примерах применение этих классов
Получение списка файлов и подкаталогов
Обратите внимание на использование слешей в именах файлов. Либо мы используем двойной слеш: «C:\\» , либо одинарный, но тогда перед всем путем ставим знак @: @»C:\Program Files»
Аналогичный пример с DirectoryInfo:
Фильтрация папок и файлов
Методы получения папок и файлов позволяют выполнять фильтрацию. В качестве фильтра в эти методы передается шаблон, который может содержать два плейсхолдера: * или символ-звездочка (соответствует любому количеству символов) и ? или вопросительный знак (соответствует одному символу)
Например, найдем все папки, которые начинаются на «books»:
Или получим все файлы с расширением «.exe»:
Создание каталога
Вначале проверяем, а нету ли такой директории, так как если она существует, то ее создать будет нельзя, и приложение выбросит ошибку. В итоге у нас получится следующий путь: «C:\SomeDir\program\avalon»
Аналогичный пример с классом Directory:
Получение информации о каталоге
Удаление каталога
Если мы просто применим метод Delete к непустой папке, в которой есть какие-нибудь файлы или подкаталоги, то приложение нам выбросит ошибку. Поэтому нам надо передать в метод Delete дополнительный параметр булевого типа, который укажет, что папку надо удалять со всем содержимым. Кроме того, перед удалением следует проверить наличие удаляемой папки, иначе приложение выбросит исключение:
Перемещение каталога
При перемещении надо учитывать, что новый каталог, в который мы хотим перемесить все содержимое старого каталога, не должен существовать.
Перемещение каталога в рамках одной папки (как в примере выше) фактически аналогично переименованию папки
c# Шпаргалка для работы с папками и подпапками
Либо в коде напишите слово DirectoryInfo, затем подведите на него курсор и нажмите правую кнопку мыши, появиться меню, теперь выполните действия как на картинке ниже.


Пространство имён System.IO содержит большое количество типов для работы с файлами и папками. Одним из таких типов является класс DirectoryInfo, работа с которым будет рассмотрена в этой статье.
Для проверки кода было создано обычное Windows Forms приложение. После чего на форму была помещена кнопка, при нажатии на которую выполняется одно из ниже описанных действий. Всё это делать не нужно, это лишь пояснение, почему все куски кода расположены в обработчике события Button.Click

Работа с папками
Перед тем, как выполнить какое-либо действие с папкой или подпапкой, желательно выполнить проверку на существование данной папки. Для этого можно использовать метод Exists, который позволит сократить количество возможных исключений, а так же защитит уже существующую папку, с таким же именем, от перезаписи.

Как получить полный путь к папке?

Как переименовать папку?

Как удалить папку?
Данный пример можно использовать, если требуется удалить пустую папку, не содержащую в себе других подпапок и файлов.
Пример удаление папки с подпапками или файлами приведен ниже.
Работа с подпапками

Создание нескольких подпапок
В данном примере создается 5 подпапок

Как удалить папку с подпапками?
Если основная папка содержит внутри себя какие-либо подпапки или файлы, то вместо удаления возникнет исключение.

Чтобы исключение не возникало, нужно передать в метод значение — true.
Как создать директорию c
Problem: Write a C/C++ program to create a folder in a specific directory path. This task can be accomplished by using the mkdir() function. Directories are created with this function. (There is also a shell command mkdir which does the same thing). The mkdir() function creates a new, empty directory with name filename.
Note: A return value of 0 indicates successful completion, and -1 indicates failure.
Creating a new directory in C
I want to write a program that checks for the existence of a directory; if that directory does not exist then it creates the directory and a log file inside of it, but if the directory already exists, then it just creates a new log file in that folder.
How would I do this in C with Linux?
![]()
4 Answers 4
Look at stat for checking if the directory exists,
And mkdir , to create a directory.
You can see the manual of these functions with the man 2 stat and man 2 mkdir commands.
![]()
You can use mkdir:
I want to write a program that (. ) creates the directory and a (. ) file inside of it
because this is a very common question, here is the code to create multiple levels of directories and than call fopen. I’m using a gnu extension to print the error message with printf.
![]()
![]()
int mkdir (const char *filename, mode_t mode)
For best practice it is recommended to use an integer-alias for mode. The argument mode specifies the file permissions for the new directory.
Read + Write + Execute: S_IRWXU (User), S_IRWXG (Group), S_IRWXO (Others)
If you want to know that the directory exists, lookup the errno’s for EEXIST.