Описание команды dir
Содержание:
- СинтаксисSyntax
- COLOPHON top
- Синтаксис и опции tree
- Переключатели команды DIR
- КомментарииRemarks
- Базовые решения
- СинтаксисSyntax
- Удаление
- Зачем может понадобиться список файлов из командной строки
- Файловый менеджер
- Создание
- Проверка на существование папки на сервере
- Получение простого формата списка из командной строки
- Вызов командной строки
- Все о функции mkdir — создании папки
- КомментарииRemarks
- Создаем текстовый файл со списком файлов в командной строке
- Errors
- Переходы
- Возвращаемое значениеReturn Value
- Заключение
СинтаксисSyntax
ПараметрыParameters
ПараметрParameter
ОписаниеDescription
Указывает расположение и имя каталога, который требуется удалить.Specifies the location and the name of the directory that you want to delete. Требуется путь .Path is required. Если включить обратную косую черту ( ) в начале указанного пути, путь начинается с корневого каталога (независимо от текущего каталога).If you include a backslash () at the beginning of the specified path, then the path starts at the root directory (regardless of the current directory).
/s/s
Удаляет дерево каталогов (указанный каталог и все его подкаталоги, включая все файлы).Deletes a directory tree (the specified directory and all its subdirectories, including all files).
/q/q
Задает тихий режим.Specifies quiet mode. Не запрашивает подтверждение при удалении дерева каталогов.Does not prompt for confirmation when deleting a directory tree
Параметр /q работает только при указании параметра /s .The /q parameter works only if /s is also specified.Внимание! При запуске в тихом режиме полное дерево каталогов удаляется без подтверждения.CAUTION: When you run in quiet mode, the entire directory tree is deleted without confirmation. Перед использованием параметра командной строки /q убедитесь, что были перемещены или архивированы важные файлы.Make sure that important files are moved or backed up before using the /q command-line option.
/?/?
Отображение справки в командной строке.Displays help at the command prompt.
ПримечанияRemarks
-
Нельзя удалить каталог, содержащий файлы, включая скрытые или системные файлы.You can’t delete a directory that contains files, including hidden or system files. При попытке сделать это появится следующее сообщение:If you attempt to do so, the following message appears:
Используйте команду dir/a , чтобы вывести список всех файлов (включая скрытые и системные файлы).Use the dir /a command to list all files (including hidden and system files). Затем используйте команду attrib с параметром -h , чтобы удалить скрытые атрибуты файла, -s для удаления атрибутов системных файлов или -h-s для удаления атрибутов скрытого и системного файлов.Then use the attrib command with -h to remove hidden file attributes, -s to remove system file attributes, or -h -s to remove both hidden and system file attributes. После удаления скрытых атрибутов и файлов можно удалить файлы.After the hidden and file attributes have been removed, you can delete the files.
-
Нельзя использовать команду rmdir для удаления текущего каталога.You can’t use the rmdir command to delete the current directory. При попытке удалить текущий каталог появляется следующее сообщение об ошибке:If you attempt to delete the current directory, the following error message appears:
Если получено это сообщение об ошибке, необходимо изменить каталог (не подкаталог текущего каталога) на другой, а затем повторить попытку.If you receive this error message, you must change to a different directory (not a subdirectory of the current directory), and then try again.
COLOPHON top
This page is part of release 5.09 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/. Linux 2020-06-09 MKDIR(2)
Pages that refer to this page:
mkdir(1),
chmod(2),
chown(2),
chown32(2),
fanotify_mark(2),
fchmod(2),
fchmodat(2),
fchown(2),
fchown32(2),
fchownat(2),
fcntl(2),
fcntl64(2),
lchown(2),
lchown32(2),
mknod(2),
mknodat(2),
rmdir(2),
syscalls(2),
umask(2),
mkdtemp(3),
proc(5),
procfs(5),
cpuset(7),
inotify(7),
signal-safety(7),
mount(8)
Синтаксис и опции tree
Запись команды tree ничем не отличается от большинства стандартных команд и выглядит следующим образом:
$ tree опции
Опций у команды tree множество. Вот те из них, которые отвечают за отображение дерева папок:
- -a — вывод всех без исключения файлов.
- -d — только список директорий.
- -l — переход по символическим ссылкам, которые ведут к папкам.
- -f — содержимое папок будет показано с префиксами пути.
- -x — учитывает только текущую файловую систему.
- -L — задает уровень вложенности для отображения в выводе.
- -R — рекурсивный переход по каталогам всех уровней.
- -P — отображение файлов, название которых соответствует шаблону.
- -I — исключение из вывода файлов, название которых соответствует шаблону.
- -o — печать вывода в файл с заданным именем.
- —noreport — запрещает команде выводить отчет по количеству папок и файлов в конце дерева.
- —charset — задает кодировки для отображения графических и html-файлов.
- —filelimit — папки, которые содержат больше файлов, чем указано, показаны не будут.
А эти опции используются для управления отображением названий документов:
- -q — заменяет непечатные символы в названиях файлов знаком ?.
- -N — выводит непечатные символы в названиях файлов как есть.
- -Q — заключает названия файлов в двойные кавычки.
- -p — для каждого из файлов указывает его название и список разрешенных действий.
- -u — печатает имя или идентификатор учетной записи, под которой был создан файл.
- -g — печатает имя или идентификатор группы пользователей, которая имеет права на доступ к файлу.
- -s — рядом с названием файла выводит его размер в байтах.
- -h — выводит размер файла в более простом для человеческого восприятия виде, добавляя к числу буквенное сокращение.
- -D — печатает дату последнего изменения файла (либо последнее изменение статуса в комбинации с опцией -c).
- -F — добавляет символ для папок, = для файлов сокета, * для исполняемых файлов, > для door-файлов, | для специальных файлов FIFO.
- —inodes — выводит номера индексных дескрипторов для файлов и папок.
- —device — указывает номер устройства, к которому принадлежит файл или папка.
Опции для сортировки результатов:
- -v — упорядочивает выдачу по уровням вложенности.
- -t — сортирует выдачу по дате последнего изменения файлов и папок.
- -c — сортирует выдачу по дате последнего изменения статуса.
- -U — результаты будут выведены в том порядке, в котором папки расположены на диске.
- -r — сортирует выдачу в обратном порядке.
- —dirsfirst — сначала будут показаны папки, потом — файлы.
Опции отображения дерева:
- -i — убирает линии («ветки» дерева), файлы и папки отображаются в виде списка.
- -n — делает дерево одноцветным.
- -C — возвращает дереву разноцветное отображение после использования опции -n.
Дальше рассмотрим как команда tree в linux может использоваться на примерах.
Переключатели команды DIR
Вы можете использовать команду DIR самостоятельно (просто введите «dir» в командной строке), чтобы отобразить файлы и папки в текущем каталоге. Чтобы расширить эту функциональность, Вам необходимо использовать различные ключи или параметры, связанные с этой командой.
Отображение на основе атрибутов файла
Вы можете добавить «/A», а затем буквенный код после команды DIR для отображения файлов с определенным атрибутом. Эти буквенные коды включают:
- D: отображает все каталоги в текущем пути
- R: отображает файлы только для чтения
- H: отображает скрытые файлы
- A: Файлы, готовые для архивирования
- S: Системные файлы
- I: Не индексированные файлы без содержимого
- L: точки повторной обработки
Так, например, чтобы отобразить только каталоги в текущем пути, Вы должны ввести следующую команду и затем нажать Enter:
dir /ad
Вы также можете комбинировать эти коды. Например, если Вы хотите показать только системные файлы, которые также скрыты, Вы можете использовать следующую команду:
dir /ash
Вы также можете добавить «-» (минус) перед любым из этих буквенных кодов, чтобы указать, чтобы команда DIR не отображала этот файл. Так, например, если Вы не хотите видеть какие-либо каталоги в результатах, Вы можете использовать эту команду:
dir /a-d
Еще один совет: вместо того, чтобы комбинировать главный переключатель и код так, как мы делали в наших примерах, Вы можете использовать двоеточие, чтобы отделить переключатель от его дополнительных кодов. Например, так:
dir /a:d
Это может сделать читаемость немного легче, но это совершенно необязательно.
КомментарииRemarks
Функция _mkdir создает новый каталог с указанным dirname.The _mkdir function creates a new directory with the specified dirname. _mkdir может создать только один новый каталог для каждого вызова, поэтому только последний компонент dirname может называть новый каталог._mkdir can create only one new directory per call, so only the last component of dirname can name a new directory. _mkdir не преобразует разделители пути._mkdir does not translate path delimiters. В Windows NT оба символа, обратная косая черта (\) и косая черта (/), являются допустимыми разделителями пути в строках символов в подпрограммах времени выполнения.In Windows NT, both the backslash ( \) and the forward slash (/ ) are valid path delimiters in character strings in run-time routines.
_wmkdir — это версия _mkdir для расширенных символов; Аргумент dirname для _wmkdir является строкой расширенных символов._wmkdir is a wide-character version of _mkdir; the dirname argument to _wmkdir is a wide-character string. в противном случае _wmkdir и _mkdir ведут себя одинаково._wmkdir and _mkdir behave identically otherwise.
По умолчанию глобальное состояние этой функции ограничивается приложением.By default, this function’s global state is scoped to the application. Чтобы изменить это, см. раздел глобальное состояние в CRT.To change this, see Global state in the CRT.
Универсальное текстовое сопоставление функцийGeneric-Text Routine Mappings
Процедура Tchar.hTchar.h routine | _UNICODE и _MBCS не определены_UNICODE and _MBCS not defined | _MBCS определено_MBCS defined | _UNICODE определено_UNICODE defined |
---|---|---|---|
_tmkdir_tmkdir | _mkdir_mkdir | _mkdir_mkdir | _wmkdir_wmkdir |
Базовые решения
Первый набор решений основан на использовании функции , комбинации функций , и , и также функции .
Использование
Первое решение базируется на использовании функции которая позволяет выполнять поиск пути с помощью шаблонов. Функция имеет два параметра:
- (обязательный): шаблон поиска
- (опциональный): один или несколько флагов, описание которых можно найти в документации
Рассмотрим примеры. Для поиска в директории всех файлов и директорий, имена которых заканчиваются на .txt, следует использовать код:
<?php $filelist = glob("*.txt");
Если вывести переменную, то получим:
array ( 0 => 'article.txt', 1 => 'text.txt' )
Если нужен список файлов и директорий, имена которых начинаются на “te”, то код будет выглядеть так:
<?php $filelist = glob("te*");
А вывод имеет вид:
array ( 0 => 'test.dat', 1 => 'text.txt' )
А для получения списка только директорий с именами, содержащих “ma”, используем код:
<?php $filelist = glob("*ma*", GLOB_ONLYDIR);
Последний пример выведет:
array ( 0 => 'manager' )
Обратите внимание, что в последнем примере использован флаг в качестве второго параметра функции. Поэтому файл исключен из списка
Хотя функция очень проста в использовании, иногда она недостаточно гибкая. Например, нет флага для получения только файлов (без директорий), которые соответствуют шаблону.
Используем , , и .
Второй подход к получению списка файлов и директорий, который мы обсудим, заключается в использовании функций , , и .
Функция открывает директорию и возвращает дескриптор соединения. Как только дескриптор получен, можно использовать функцию . С каждым обращением данная функция выдает имя следующего файла или директории внутри открытого каталога. Если все имена уже были перечислены, функция возвращает false. Для закрытия дескриптора используется функция .
В отличие от использования функции , данный подход сложнее, так как у вас нет параметров, которые помогают фильтровать список возвращаемых имен файлов и директорий. Вы должны выполнить фильтрацию самостоятельно, чтобы получить нужный результат.
Ниже приведенный пример возвращает список имен файлов и директорий начинающихся на “te”:
<?php $filelist = array(); if ($handle = opendir(".")) { while ($entry = readdir($handle)) { if (strpos($entry, "te") === 0) { $filelist[] = $entry; } } closedir($handle); }
При выполнении выше приведенного кода, переменная будет содержать такие включения, как “.” и “..”. Это две виртуальные директории, которые имеются в каждом каталоге файловой системы. Они представляют текущий каталог и родительский каталог соответственно.
Второй пример выводит только файлы, содержащиеся в заданном каталоге.
<?php $filelist = array(); if ($handle = opendir(".")) { while ($entry = readdir($handle)) { if (is_file($entry)) { $filelist[] = $entry; } } closedir($handle); }
Пример выдаст следующее:
array ( 0 => 'article.txt', 1 => 'master.dat', 2 => 'script.php', 3 => 'test.dat', 4 => 'text.txt' )
Использование
В завершение представим функцию . Она имеет только один обязательный параметр: путь для чтения. Функция возвращает массив файлов и директорий, расположенных по указанному пути. Для получения списка файлов и директорий по определенному критерию нужно выполнить дополнительную фильтрацию. С другой стороны, решение получается более кратким и не требует управления дескрипторами.
Данный пример показывает, как получить список файлов и каталогов, имена которых начинаются на “te”:
<?php $entries = scandir("."); $filelist = array(); foreach($entries as $entry) { if (strpos($entry, "te") === 0) { $filelist[] = $entry; } }
СинтаксисSyntax
ПараметрыParameters
ПараметрParameter
ОписаниеDescription
Указывает расположение и имя каталога, который требуется удалить.Specifies the location and the name of the directory that you want to delete. Требуется путь .Path is required. Если включить обратную косую черту ( ) в начале указанного пути, путь начинается с корневого каталога (независимо от текущего каталога).If you include a backslash () at the beginning of the specified path, then the path starts at the root directory (regardless of the current directory).
/s/s
Удаляет дерево каталогов (указанный каталог и все его подкаталоги, включая все файлы).Deletes a directory tree (the specified directory and all its subdirectories, including all files).
/q/q
Задает тихий режим.Specifies quiet mode. Не запрашивает подтверждение при удалении дерева каталогов.Does not prompt for confirmation when deleting a directory tree
Параметр /q работает только при указании параметра /s .The /q parameter works only if /s is also specified.Внимание! При запуске в тихом режиме полное дерево каталогов удаляется без подтверждения.CAUTION: When you run in quiet mode, the entire directory tree is deleted without confirmation. Перед использованием параметра командной строки /q убедитесь, что были перемещены или архивированы важные файлы.Make sure that important files are moved or backed up before using the /q command-line option.
/?/?
Отображение справки в командной строке.Displays help at the command prompt.
ПримечанияRemarks
-
Нельзя удалить каталог, содержащий файлы, включая скрытые или системные файлы.You can’t delete a directory that contains files, including hidden or system files. При попытке сделать это появится следующее сообщение:If you attempt to do so, the following message appears:
Используйте команду dir/a , чтобы вывести список всех файлов (включая скрытые и системные файлы).Use the dir /a command to list all files (including hidden and system files). Затем используйте команду attrib с параметром -h , чтобы удалить скрытые атрибуты файла, -s для удаления атрибутов системных файлов или -h-s для удаления атрибутов скрытого и системного файлов.Then use the attrib command with -h to remove hidden file attributes, -s to remove system file attributes, or -h -s to remove both hidden and system file attributes. После удаления скрытых атрибутов и файлов можно удалить файлы.After the hidden and file attributes have been removed, you can delete the files.
-
Нельзя использовать команду RD для удаления текущего каталога.You can’t use the rd command to delete the current directory. При попытке удалить текущий каталог появляется следующее сообщение об ошибке:If you attempt to delete the current directory, the following error message appears:
Если получено это сообщение об ошибке, необходимо изменить каталог (не подкаталог текущего каталога) на другой, а затем повторить попытку.If you receive this error message, you must change to a different directory (not a subdirectory of the current directory), and then try again.
ПримерыExamples
Чтобы перейти к родительскому каталогу, чтобы можно было безопасно удалить нужный каталог, введите:To change to the parent directory so you can safely remove the desired directory, type:
Чтобы удалить каталог с именем Test (и все его подкаталоги и файлы) из текущего каталога, введите:To remove a directory named test (and all its subdirectories and files) from the current directory, type:
Чтобы запустить предыдущий пример в тихом режиме, введите:To run the previous example in quiet mode, type:
Удаление
Удалить папки, их содержимое позволяет команда «rmdir» либо её сокращённая версия «rm». После прописываются параметры, затем путь.
Если требуется удалить пустой каталог «Example folder», пишется по образцу «rmdir “C:\ Example folder”».
Если «Example folder» не пустой, в нём имеются подпапки/файлы, чтобы всё вместе удалить, следует после команды прописать ключ «/s». Ключ вписывается после «rmdir», но до адреса назначения. То есть запись будет выглядеть так: «rmdir /s “C:\Example folder”». Набрав команду, увидите запрос на подтверждение действий, выбираете «y», что значит, что вы согласны удалить («yes»).
Чтобы запрос на подтверждение постоянно не появлялся, можно сразу прописать ключ «/q». Он вписывается после «/s».
Можно перечислить через пробел удаляемое. Допустим, внутри «Test» вам стали не нужны папки 2 и 3, значит, записываете команду: «rmdir /s /q “C:\Test\1” “C:\Test\2” “C:\Test\3”». Если вы уже находитесь в каталоге «Test», можно вписать сокращённый вариант: «rmdir /s /q 1 2 3».
Зачем может понадобиться список файлов из командной строки
Если вам когда-нибудь понадобиться получить список всех файлов, то вы обнаружите пренеприятнейшую новость. Интерфейс проводника Windows не позволяет вам это сделать в простой и понятной форме. И вроде бы задача до безумия проста, и вроде перед глазами все необходимые файлы, но… Однако, это можно очень просто сделать с помощью командной строки (cmd). Кроме того, командная строка позволит вам отфильтровать только необходимые файлы, например, только mp3. В данном случае мы будем использовать специальную команду «dir». Скорее всего, опытным пользователям это команда хорошо знакома, поэтому статья будет для них не интересной. Но, для большинства обычных пользователей она окажется весьма полезной.
Примечание: вы так же можете использовать различные каталогизаторы и органайзеры, то они требуют установки дополнительных приложений.
Если вам кажется, что это никогда вам в жизни не пригодится, то вы ошибаетесь. Практически каждый пользователь каждый день в неявном виде использует списки файлов. Это и поиск необходимого документа среди всех ваших документов. Это музыка. Это фотографии. Это различный экспорт файлов в ваших приложениях. Банально, тот же плей лист. Просто вы никогда не сталкивались с такими простыми задачами, как «передать список файлов, например, в техподдержку», «коллективно выбрать необходимую вам музыку из всего списка» (причем обычно это делается на бумаге, да существует огромное количество «модных девайсов», но они никогда не заменят такие простые вещи, как бумагу и карандаш), «загрузить список в новое приложение» (далеко не во всех приложениях качественно реализован импорт), «использование для технических нужд тех же консольных приложений» (например, различная пакетная обработка файлов; конечно, рядовой пользователь никогда не будет этого делать, но…) и многое многое другое.
Файловый менеджер
Чтобы создать новую папку данным способом, найдите ярлык файлового менеджера (Nautilus) в меню Dash или на панели Unity. Кликните мышкой по этому ярлыку. В перечне доступных каталогов выберите тот, в котором планируете создать новую папку. Вам необходимо перейти в него для выполнения актуальной задачи.
Предлагаем вашему вниманию альтернативный вариант: в окне файлового менеджера кликните правой кнопкой мыши для вызова контекстного меню. В списке доступных опций выберите вариант «Создать папку». Так будет еще быстрее.
Придумайте наименование для новой папки. Используйте любые цифры, символы или буквы для ввода названия в специальной графе. Единственным исключением из правила является символ косой черточки. Его использование запрещено для подобных целей.
В этом плане операционная система Linux не так строга и взыскательна, как операционная система Windows. Если внимательнее присмотреться, то можно понять без сомнений: Линукс имеет множество преимуществ в работе.
После того, как наименование будет прописано, нужно сохранить внесенные изменения. Для этого следует один раз кликнуть мышкой в окне файлового менеджера – там, где остается свободное место. Как видите, ничего сложного в этом нет.
Заключение
В данной статье представлены сразу несколько альтернативных способов создания новой папки в Линукс. Неопытному пользователю остается лишь выбрать максимально удобный вариант. Работа с консольными командами станет для новичка сущим удовольствием, как только он отважится иметь делом с терминалом.
Создание
Чтобы появилась новая папка, набирается «mkdir», можно сокращённо просто «md». Далее записывается путь к ней, название. Например, в корне диска C вам нужно в имеющемся «Test» создать подпапку «Russian», значит, набираете последовательно «mkdir “C:\Test\Russian ”».
Можно сразу создать несколько новых папок, укажите пути тогда через пробел либо названия. Допустим, в той же «Test» требуются подпапки 1, 2, 3. Если вы уже находитесь в корне C-диска, наберите «mkdir “Test \1” “Test \2” “Test \3”». Если вы находитесь уже в «Test», можно применять сокращённый вариант команды: «mkdir 1 2 3». Но не забудьте: при наличии пробелов в названиях, их нужно будет заключить в кавычки.
Проверка на существование папки на сервере
Для того, чтобы не создавать множество папок с одинаковыми названиями проверяйте есть ли папка с таким названием — Это кажется странным, но почему-то на сервере создавались папки с одинаковыми названиями! Я не знаю, это нормальное поведение сервера или нет, но я так думал, что сервер будет вести себя как папки на компьютере. Оказалось, нет.
Хотя я и не уверен, что это будет так же происходить на другом сервере..
Поэтому, для того, чтобы не происходил такой сбой – лучше проверить есть ли такая папка.
Для этого можно использовать функцию — file_exists – хотя её прямое предназначение проверять файлы, но с папками она тоже замечательно справляется!
is_dir
if (file_exists($dir))
{
echo «Папка уже существует»;
}
else
{
тут конструкция создания папки
}
Получение простого формата списка из командной строки
Вышеописанные команды сформируют списки, которые дополнительно будут включать информацию о файлах, а именно размер и дату создания. Но, такая информация далеко не всегда необходима. Порой нам нужен именно простой список файлов. Чтобы сформировать такой список, необходимо добавить в команду специальный параметр «/b». В итоге команда будет выглядеть следующим образом:
dir /s /b *.jpg > listjpg.txt
Если вам интересно, то есть много других полезных команд. Чтобы узнать полный список команд, вам необходимо ввести команду «help». Конечно, краткое описание команды вряд ли поможет вам представить, как можно использовать команду. Поэтому существует специальный параметр «/?». Если вы его введете сразу после команды, то в окне консоли появится небольшой мануал по использованию команды и ее параметров.
Предупреждение: Если вы не сильно разбираетесь в том, что именно делает команда, то настоятельно вам рекомендуем сперва прочитать о ее применении, хотя бы в поисковике. Неаккуратное и неправильное использование команд может привести к неприятным последствиям. Конечно, можно использовать образы диска перед тестами, но, согласитесь, что это сильно накладно.
Рубрики:
- система
- стандартное
- Как открыть командную строку Windows из любой папки
- Как открыть командную строку в Windows 7 / Vista от имени администратора?
Вызов командной строки
Есть несколько приёмов, которые помогут вам начать работу с командной строкой. Открыть её можно следующим образом:
- Найдите в системной папке C:\Windows\System32 файл cmd.exe, кликните по нему дважды.
- В версиях WindowsXP и выше нажмите вместе клавиши Win+R. Откроется системное окно «Выполнить». В строчке наберите cmd, подтвердите действие, нажав ОК.
- В Win7, чтобы открыть программу, зайдите в «Пуск» — «Все программы», там найдите «Стандартные», нажав на папку для просмотра, увидите значок с подписью для запуска программы.
- В Win7, 10 в «Пуске» впишите внизу в строке поиска («Найти программы и файлы») впишите «командная строка», система покажет программу. В Win8 поиск находится в боковом меню.
При первом запуске по умолчанию вы находитесь в вашем персональном каталоге. Обычно, это «C:\Users\<имя пользователя>\».
Все о функции mkdir — создании папки
- Скачать
-
Немного теории из учебника про создание папки и использование mkdir :
Вообще mkdir образовано от двух слов make и dir, что собственно и переводится на русский, как создать папку.
Функция mkdir создает папку по заданному пути.
По умолчанию функция «mkdir» создает с правами 0777, если вам нужно поставить свои права, то нужно использовать такую конструкцию:
mkdir(«путь_до_папки/папка», 0777);
Вторая позиция, которая называется Аргумент mode игнорируется в Windows и стал необязательным начиная с версии PHP 4.2.0.С учебником разобрались, а теперь… попробуем создать тестовую папку без Аргумента mode и…
второй раз… создадим папку тестовую уже с mode = 0777
1). mkdir(«test»):
2). mkdir(«test» , 0777):Итого у нас получилось одинаковая картина! папка создается, только вот по умолчанию права устанавливаются 0755
Не то, чтобы мне это было надо, возможно где то, этот mode настраивается! За все время вообще — это редкий случай, когда приходится обращаться к правам папок!
Функция mkdir возвращает при успешной работе TRUE и иначе FALSE, у функции есть 4 параметра, о которых мы, здесь не будем углубляться – об одном из параметров мы сказали это «mode» — права(0700).
В случае существовании папки вернет ошибку типа Warning
Warning: mkdir(): File exists in путь on line номер -
Для нахождения пути на сервере к корневой папке используйте конструкцию:
$home = $_SERVER.»/»;
Что означает – корневую папку. Соответственно «путь_до_папки» — это путь от корневой папки.Итого у вас должно получиться
$dir = $home . «/путь_до_папки/название_создаваемой_папки»; //путь до папки
mkdir($dir, 0777);
-
Для того, чтобы не создавать множество папок с одинаковыми названиями проверяйте есть ли папка с таким названием — Это кажется странным, но почему-то на сервере создавались папки с одинаковыми названиями! Я не знаю, это нормальное поведение сервера или нет, но я так думал, что сервер будет вести себя как папки на компьютере. Оказалось, нет.
Хотя я и не уверен, что это будет так же происходить на другом сервере..
Поэтому, для того, чтобы не происходил такой сбой – лучше проверить есть ли такая папка.
Для этого можно использовать функцию — file_exists – хотя её прямое предназначение проверять файлы, но с папками она тоже замечательно справляется!
Вместо file_exists — можно и нужно использовать is_dir
if (file_exists($dir))
{
echo «Папка уже существует»;
}
else
{
тут конструкция создания папки
}
-
Например вам требуется создать папку №1(folder_1), а в ней должна создаваться вторая вложенная папка (folder_2) и так далее…
Как создать папку в папке!? Для этого нужно сделать что-то наподобие:
if (!is_dir(folder_1))
{
mkdir(folder_1);
if (!is_dir(folder_1/folder_2))
{
mkdir(folder_1/folder_2);
}
}
Создание второй папки можно вынести наружу, но тогда потребуется проверять сразу два условия + существование папки 1
if (!is_dir(folder_1))
{
mkdir(folder_1);
}
if (!is_dir(folder_1/folder_2) and is_dir(folder_1))
{
mkdir(folder_1/folder_2);
}
Вас может еще заинтересовать список тем : #PHP | #PHP_FUNCTION | #PHP_FOLDER | #PHP_BOOK | Последняя дата редактирования : 2020-04-27 09:16
Название скрипта :Как сделать папку в PHP
Скрипт № 26.1ПримерСсылка на скачивание : Все скрипты на
//dwweb.ru/comments_1_5/include/img/hand_no_foto.png
no
no
КомментарииRemarks
Функция _mkdir создает новый каталог с указанным dirname.The _mkdir function creates a new directory with the specified dirname. _mkdir может создать только один новый каталог для каждого вызова, поэтому только последний компонент dirname может называть новый каталог._mkdir can create only one new directory per call, so only the last component of dirname can name a new directory. _mkdir не преобразует разделители пути._mkdir does not translate path delimiters. В Windows NT оба символа, обратная косая черта (\) и косая черта (/), являются допустимыми разделителями пути в строках символов в подпрограммах времени выполнения.In Windows NT, both the backslash ( \) and the forward slash (/ ) are valid path delimiters in character strings in run-time routines.
_wmkdir — это версия _mkdir для расширенных символов; Аргумент dirname для _wmkdir является строкой расширенных символов._wmkdir is a wide-character version of _mkdir; the dirname argument to _wmkdir is a wide-character string. в противном случае _wmkdir и _mkdir ведут себя одинаково._wmkdir and _mkdir behave identically otherwise.
По умолчанию глобальное состояние этой функции ограничивается приложением.By default, this function’s global state is scoped to the application. Чтобы изменить это, см. раздел глобальное состояние в CRT.To change this, see Global state in the CRT.
Универсальное текстовое сопоставление функцийGeneric-Text Routine Mappings
Процедура Tchar.hTchar.h routine | _UNICODE и _MBCS не определены_UNICODE and _MBCS not defined | _MBCS определено_MBCS defined | _UNICODE определено_UNICODE defined |
---|---|---|---|
_tmkdir_tmkdir | _mkdir_mkdir | _mkdir_mkdir | _wmkdir_wmkdir |
Создаем текстовый файл со списком файлов в командной строке
Для того чтобы выведенный список сохранить в текстовый файл, используется специальный символ перенаправления потока «>» (без кавычек).
- Откройте командную строку в необходимой папке.
- Введите «dir > listmyfolder.txt» (без кавычек) и нажмите Enter. Весь список сохранится в файле «listmyfolder.txt».
- Если вам необходимо так же сохранить файлы и из всех вложенных каталогов, то используйте команду «dir /s > listmyfolder.txt» (без кавычек)
Файл «listmyfolder.txt» будет создан в той же папке, в которой вы находитесь. Небольшой уточнение по поводу файла, вы можете называть его как вам будет угодно, задавать ему абсолютно любое расширение. Каких-то специальных ограничений нет, кроме тех, что требует система Windows к названиям файлов. Так же вы можете использовать полные пути, для сохранения списка в другом каталоге. Например, вы хотите сохранить файл на диске «F:» в каталоге «list». Для этого вам необходимо будет использовать такую команду «dir > F:\list\listmyfolder.txt» (без кавычек). Как видите ничего сложно нет.
Errors
The mkdir() function shall fail if:
- EACCES
- Search permission is denied on a component of the path prefix, or write permission is denied on the parent directory of the directory to be created.
- EEXIST
- The named file exists.
- ELOOP
- A loop exists in symbolic links encountered during resolution of the path argument.
- EMLINK
- The link count of the parent directory would exceed {LINK_MAX}.
- ENAMETOOLONG
- The length of the path argument exceeds {PATH_MAX} or a pathname component is longer than {NAME_MAX}.
- ENOENT
- A component of the path prefix specified by path does not name an existing directory or path is an empty string.
- ENOSPC
- The file system does not contain enough space to hold the contents of the new directory or to extend the parent directory of the new directory.
- ENOTDIR
- A component of the path prefix is not a directory.
- EROFS
- The parent directory resides on a read-only file system.
The mkdir() function may fail if:
- ELOOP
- More than {SYMLOOP_MAX} symbolic links were encountered during resolution of the path argument.
- ENAMETOOLONG
- As a result of encountering a symbolic link in resolution of the path argument, the length of the substituted pathname string exceeded
{PATH_MAX}.
The following sections are informative.
Переходы
Работая через командную строку, вы захотели перейти в другой каталог. Вам поможет команда «chdir», позволяющая перейти в другое место. Либо просто заходите в раздел, как описывалось в этой статье выше, с помощью команды «cd».
Для перехода в подкаталог, необязательно указывать полный адрес, ежели находитесь в родительском. Допустим, вы находитесь в «ProgramFile», как в командной строке перейти в папку «Skype»? Не нужно указывать полный путь: «cd “C:\ProgramFiles\Skype”»; достаточно указать название подкаталога: «cd “Skype”».
Чтобы перейти назад, в родительский каталог, вписываем «cd “ProgramFiles”».
Если требуется поменять диск нахождения, добавляется ключ «/D», например, из диска C: понадобилось перейти в D:, прописываете «cd /D d:/».
Возвращаемое значениеReturn Value
Каждая функция возвращает значение 0, если новый каталог успешно создан.Each of these functions returns the value 0 if the new directory was created. При возникновении ошибки функция возвращает-1 и задает значение переводится следующим образом.On an error, the function returns -1 and sets errno as follows.
Иксист Каталог не был создан, так как dirname — это имя существующего файла, каталога или устройства.EEXIST Directory was not created because dirname is the name of an existing file, directory, or device.
Еноент Путь не найден.ENOENT Path was not found.
Дополнительные сведения об этих и других кодах возврата см. в разделе _doserrno, errno, _sys_errlist и _sys_nerr.For more information about these and other return codes, see _doserrno, errno, _sys_errlist, and _sys_nerr.
Заключение
В данном уроке демонстрируется использование различных подходов для достижение одинаковой цели: получение списка файлов и директорий. Следует запомнить следующие ключевые моменты:
- Функция является встроенным решением, но она недостаточно гибкая.
- Решение на основе , , и более сложное и требует дополнительной фильтрации, но оно более гибкое.
- Функция требует дополнительной фильтрации, но работает без обработки дескриптора.
- Если вы используете подход ООП, то следует применять библиотеку SPL. Дополнительно вы можете расширить классы своим функционалом.
- Итератор имеет функцию предварительной фильтрации, а другие используют .