is_file — Определяет, является ли файл обычным файлом


Содержание

Работа с файловой системой

Краткое содержание лекции

Константы

  • DIRECTORY_SEPARATOR
  • __LINE__
  • __FILE__
  • __DIR__

Работа с директорией

  • int filesize ( string $filename )
  • bool is_dir ( string $filename )
  • string filetype ( string $filename )
  • resource opendir ( string $path [, resource $context ] )
  • readdir
  • closedir
  • while (false !== ($entry = readdir($handle))) <
  • while ($entry = readdir($handle)) <

while (($entry = readdir($handle)) !== false) <

void rewinddir ([ resource $dir_handle ] )

Directory dir ( string $directory [, resource $context ] )

  • array scandir ( string $directory [, int $sorting_order = SCANDIR_SORT_ASCENDING [, resource $context ]] )
  • string getcwd ( void )
  • bool chdir ( string $directory )
  • bool chroot ( string $directory )
  • bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )
  • bool rmdir ( string $dirname [, resource $context ] )

Работа с файлами

  • string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] )
  • int file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )
  • resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )
  • string fread ( resource $handle , int $length )
  • int fwrite ( resource $handle , string $string [, int $length ] ) / fputs
  • bool fclose ( resource $handle )
  • bool rewind ( resource $handle )
  • string fgets ( resource $handle [, int $length ] )
  • array fgetcsv ( resource $handle [, int $length = 0 [, string $delimiter = ‘,’ [, string $enclosure = ‘»‘ [, string $escape = ‘\\’ ]]]] )
  • int fputcsv ( resource $handle , array $fields [, string $delimiter = ‘,’ [, string $enclosure = ‘»‘ ]] )
  • int fpassthru ( resource $handle )
    int readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] )

array file ( string $filename [, int $flags = 0 [, resource $context ]] )

bool copy ( string $source , string $dest [, resource $context ] )

bool rename ( string $oldname , string $newname [, resource $context ] )

bool unlink ( string $filename [, resource $context ] )

void delete ( void )

string dirname ( string $path )

bool file_exists ( string $filename )

string tempnam ( string $dir , string $prefix )

resource tmpfile ( void )

string realpath ( string $path )

string basename ( string $path [, string $suffix ] )

Самостоятельно при желании

  • chgrp — Изменяет группу владельцев файла
  • chmod — Изменяет режим доступа к файлу
  • chown — Изменяет владельца файла
  • clearstatcache — Очищает кэш состояния файлов
  • diskfreespace — Возвращает размер доступного пространства в каталоге или в файловой системе
  • disktotalspace — Возвращает общий размер каталога или раздела файловой системы
  • diskfreespace — Псевдоним diskfreespace
  • feof — Проверяет, достигнут ли конец файла
  • fflush — Сбрасывает буфер вывода в файл
  • fgetc — Считывает символ из файла
  • fgetss — Прочитать строку из файла и отбросить HTML-теги
  • fileatime — Возвращает время последнего доступа к файлу
  • filectime — Возвращает время изменения индексного дескриптора файла
  • filegroup — Получает идентификатор группы файла
  • fileinode — Возвращает индексный дескриптор файла
  • filemtime — Возвращает время последнего изменения файла
  • fileowner — Возвращает идентификатор владельца файла
  • fileperms — Возвращает информацию о правах на файл
  • flock — Портируемая консультативная блокировка файлов
  • fnmatch — Проверяет совпадение имени файла с шаблоном
  • fscanf — Обрабатывает данные из файла в соответствии с форматом
  • fseek — Устанавливает смещение в файловом указателе
  • fstat — Получает информацию о файле используя открыты й файловый указатель
  • ftell — Сообщает текущую позицию чтения/записи файла
  • ftruncate — Урезает файл до указанной длинны

moveuploadedfile — Перемещает загруженный файл в новое место

glob — Находит файловые пути, совпадающие с шаблоном

is_dir — Определяет, является ли имя файла директорией

is_executable — Определяет, является ли файл исполняемым

is_file — Определяет, является ли файл обычным файлом

is_link — Определяет, является ли файл символической ссылкой

is_readable — Определяет существование файла и доступен ли он для чтения

isuploadedfile — Определяет, был ли файл загружен при помощи HTTP POST

is_writable — Определяет, доступен ли файл для записи

iswriteable — Псевдоним iswritable

lchgrp — Изменяет группу, которой принадлежит символическая ссылка

lchown — Изменяет владельца символической ссылки

link — Создаёт жёсткую ссылку

linkinfo — Возвращает информацию о ссылке

lstat — Возвращает информацию о файле или символической ссылке

symlink — Создаёт символическую ссылку

readlink — Возвращает файл, на который указывает символическая ссылка

parseinifile — Обрабатывает конфигурационный файл

parseinistring — Разбирает строку конфигурации

pathinfo — Возвращает информацию о пути к файлу

pclose — Закрывает файловый указатель процесса

popen — Открывает файловый указатель процесса

realpathcacheget — Получает записи из кэша реального пути

realpathcachesize — Получает размер кэша реального пути

setfilebuffer — Псевдоним streamsetwrite_buffer

stat — Возвращает информацию о файле

touch — Устанавливает время доступа и модификации файла

Функция Is_file

Функция Is_file определяет, является ли файл обычным файлом
В параметре Filename указывается путь к файлу.

Функция Is_file возвращает TRUE, если файл существует и является обычным файлом, иначе возвращает FALSE.

Так как тип Integer в PHP является целым числом со знаком и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2ГБ.

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Результаты этой функции кэшируются. Для очистки кэша необходимо использовать функцию Clearstatcache.

Как проверить, является ли файл обычным файлом?

Как проверить на С++, если файл является обычным файлом (и не является каталогом, трубой и т.д.)? Мне нужна функция isFile().

Я пробовал сравнивать dirp- > d_type с (unsigned char) 0x8, но он не переносится через разные системы.

6 ответов

Вам нужно вызвать stat (2) в файле, а затем использовать макрос S_ISREG на st_mode.

Вы можете использовать портативный boost::filesystem (стандартная библиотека С++ не могла это сделать до недавнего введения std:: filesystem в С++ 17):

Сам С++ не имеет дело с файловыми системами, поэтому нет портативного способа в самом языке. Примеры для платформы — stat для * nix (как уже было отмечено Мартином против Льюиса) и GetFileAttributes для Windows.

Кроме того, если вы не страдаете аллергией на Boost, существует довольно кросс-платформенный boost::filesystem .

В С++ 17 вы можете использовать std:: filesystem:: is_regular_file

PHP: Логические функции файловой системы

Из всех обсуждаемых в этом разделе функций поддержки первыми мы рассмотрим логические функции. Эти функции являются логическими, потому что они разработаны для проверки свойств файла (является ли он выполняемым, является ли он каталогом, и так далее) и возвращают булевские значения true и false. Из-за относительной схожести (и простоты) большинства этих функций, мы опустим их подробное объяснение.

Необходимо сделать одно важное уточнение по отношению к рассматриваемым ниже функциям — эти функции применимы только к файлам в «локальной» файловой системе. Это означает, что хотя они будут работать на смонтированных или общих сетевых каталогах, они не будут работать с файлами на удаленном сервере, к которому доступ осуществляется по протоколу HTTP или FTP.

Как уже упоминалось, большинство из функций, которые считаются «логическими», используется для определения конкретного свойства передаваемого файла. Доступные в РНР логические функции для определения свойств заданного файла перечисленны ниже. Каждая из этих функций принимает единственный параметр (имя проверяемого файла) и возвращает булевское значение, определяющее, обладает ли указанный файл требуемым свойством.

Логические функции для проверки файлов

is_dir () Определяет, является ли файл каталогом.
is_executable () Определяет, является ли файл исполняемым под управлением РНР.
is_file () Определяет, является ли файл обычным файлом или символической ссылкой (возвращает true, если это обычный файл).
is_link () Определяет, является ли файл символической ссылкой (обратная к функции is_file ()).
is_readable () Определяет, имеет ли РНР разрешение на чтение из заданного файла.
is_uploaded_file () Определяет, был ли данный файл загружен на сервер через Web.
iswriteable () Определяет, имеет ли РНР разрешение на запись в заданный файл.
file_exists () Определяет, существует ли заданный файл.

Is_file — Определяет, является ли файл обычным файлом

Описание:

bool file_exists ( string $filename )

Проверяет наличие указанного файла или каталога.

Список параметров:

Путь к файлу или каталогу.

На платформах Windows, для проверки наличия файлов на сетевых ресурсах, используйте имена, подобные //computername/share/filename или \\computername\share\filename.

Возвращаемые значения:

Возвращает TRUE, если файл или каталог, указанный параметром filename, существует, иначе возвращает FALSE.

Замечание:

Данная функция возвращает FALSE для символических ссылок, указывающих на несуществующие файлы.

Если файлы недоступны из-за ограничений, налагаемых безопасным режимом, то данная функция вернет FALSE. Однако, эти файлы все еще могут быть подключены, если они располагаются в каталоге safe_mode_include_dir.

Замечание:

Проверка происходит с помощью реальных UID/GID, а не эффективных идентификаторов.

Замечание:

Так как тип integer в PHP является целым числом со знаком и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2ГБ.

Примеры:

Пример #1 Проверка существования файла:

$filename = ‘/path/to/foo.txt’; if (file_exists($filename)) < echo "Файл $filename существует"; >else

file_exists — Проверяет наличие указанного файла или каталога

file_exists

(PHP 3, PHP 4, PHP 5)

file_exists — Проверить наличие указанного файла или каталога

Описание

bool file_exists ( string filename )

Возвращзает , если файл или каталог с именем, указанным в параметре filename, существует; возвращает в обратном случае.

На платформах Windows, для проверки наличия файлов на сетевых ресурсах, используйте имена, подобные или .

Пример 1. Проверка существования файла

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка: Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url. Список упаковщиков, поддерживаемых семейством функций stat(), смотрите в Прил. M.

См.также описания функций is_readable(), is_writable(), is_file() и file().

Смотрите также:
Все функции файл
Описание на ru2.php.net
Описание на php.ru

Вам нужно имя файла в кавычках как минимум (как строка):

Кроме того, убедитесь, что правильно проверен. И тогда он будет работать только тогда, когда активируется в вашей конфигурации PHP

Попробуйте вот так:

Сначала вам нужно понять: у вас нет файлов .
Файл является объектом файловой системы , но вы делаете свой запрос с использованием протокола HTTP, который не поддерживает файлы, кроме URL-адресов.

Таким образом, вы должны запросить неиспользуемый файл, используя ваш браузер, и посмотреть код ответа.

PHP, проверка существования/наличия удаленного файла

если это не 404, вы не можете использовать какие-либо обертки, чтобы увидеть, существует ли файл, и вы должны запросить свой cdn, используя какой-либо другой протокол, например FTP

Вот простейший способ проверить, существует ли файл:

Существует большая разница между и .

php.net/manual/en/function.is-file.php возвращает true для (обычных) файлов:

Возвращает TRUE, если имя файла существует и является обычным файлом, в противном случае FALSE .

возвращает true для обоих файлов и каталогов:

Возвращает TRUE, если существует файл или каталог, указанный по имени файла; FALSE в противном случае.

Примечание.Для получения дополнительной информации по этому вопросу также проверьте этот вопрос с использованием .

вы можете использовать cURL. Вы можете получить cURL только для того, чтобы дать вам заголовки, а не тело, которое могло бы сделать его быстрее. Плохой домен всегда может занять некоторое время, потому что вы будете ждать запроса на тайм-аут; вы, вероятно, можете изменить длину таймаута, используя cURL.

читает не только файлы, но и пути. поэтому, когда пуст, команда будет работать так, как если бы она была написана следующим образом:

если каталог / images / существует, функция все равно вернет .

Обычно я пишу это так:

Если вы используете завиток, вы можете попробовать следующий скрипт:

Ссылка URL: https://hungred.com/how-to/php-check-remote-email-url-image-link-exist/

Возвращаемые значения

Возвращает , если файл или каталог, указанный параметром , существует, иначе возвращает .

Данная функция возвращает для символических ссылок, указывающих на несуществующие файлы.

Как в PHP проверить директорию на существование и удалить её?

Проверка происходит с помощью реальных UID/GID, а не эффективных идентификаторов.

Замечание: Так как тип integer в PHP является целым числом со знаком и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2ГБ.

Примеры

Пример #1 Проверка существования файла

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня .

Смотрите также

  • is_readable() — Определяет существование файла и доступен ли он для чтения
  • is_writable() — Определяет, доступен ли файл для записи
  • is_file() — Определяет, является ли файл обычным файлом
  • file() — Читает содержимое файла и помещает его в массив

Вернуться к: Файловая система

Проверка на существование

В PHP есть два способа проверки директорий на существование. Первый заключается в использовании функции file_exists(). Принцип её работы обсуждался ранее в статье о правах доступа. Напомним, что функция принимает всего один строковой параметр — путь в файловой системе. Несмотря на то, что в названии содержится слово «file» она замечательно работает с директориями.

Второй способ связан со встроенной функцией is_dir(). Она, как и file_exists() принимает относительный или абсолютный путь расположения директории. Однако помимо проверки на существование также будет подтвержден тот факт, что по данному пути находится именно директория, а не файл. Если строка описывает место расположения жесткой или символической ссылки, is_dir() осуществит переход по ней и будет анализировать конечную точку пути. В случае успеха возвращается логическое значение true, а в случае неудачи false.

//создадим новую директорию в корне сайта для проверок $dirName = «<$_SERVER[‘DOCUMENT_ROOT’]>/directory»; if (!file_exists($dirName)) < mkdir($dirName); >var_dump(file_exists($dirName)); //Рузультат: bool(true) var_dump(is_dir($dirName)); //Рузультат: bool(true)

Заметка
Функции, отвечающие за проверку директорий на существование, могут возвращать false при отсутствии прав доступа. Такие вещи не зависят от PHP-скрипта, это уровень ответственности операционной системы.

Удаление директории

Для удаления директории в PHP используется функция rmdir(). В качестве первого параметра ей необходимо передать место расположения каталога. По аналогии с вышеизложенными примерами будут возвращены логические значения true или false.

Удаление директории может показаться простой задачей. Однако в большинстве случаев это не так. Функция rmdir() работает только с пустым каталогом и возвращает false, если внутри содержится что-то ещё. В таком случае нужно использовать рекурсивное удаление.

//создадим временную директорию для демонстрации $dirName = «<$_SERVER[‘DOCUMENT_ROOT’]>/directory»; if (!file_exists($dirName)) < mkdir($dirName); >if (rmdir($dirName)) < echo ‘Директория удалена успешно’; >else

Рекурсивное удаление

Простого способа удаления заполненной директории не существует.

Ниже мы приводим два примера реализации подобного механизма. Его можно сохранить в виде функции и использовать в любой части программного кода.

Первым способом удаления директории в PHP является использование рекурсивной функции. То есть функции, которая вызывает сама себя пока выполняются определенные условия. Взгляните на пример, приведенный ниже. Он довольно прост для понимания.

Проверка существования файла на php

Мы используем стандартную функцию scandir() для перебора всего содержимого каталога. Если мы натыкаемся на файл, вызываем функцию unlink(), а если на другую директорию, используем её имя для рекурсивного вызова.

Также в PHP есть два встроенных класса RecursiveDirectoryIterator и RecursiveIteratorIterator. Их можно использовать для перебора всех уровней вложенности указанной директории. Обратите внимание, при создании экземпляра класса RecursiveIteratorIterator мы используем второй параметр RecursiveIteratorIterator::CHILD_FIRST. Он заставляет проходить в цикле все файлы и каталоги, начиная от самых вложенных. Таким образом, можно обойтись без явного вызова рекурсивной функции.

список Как определить, является ли файл обычным файлом или каталогом, используя python

python проверить существование папки (6)

Как вы проверяете, является ли файл нормальным файлом или каталогом с помощью python?

os.path.isdir() и os.path.isfile() должны предоставить вам то, что вы хотите. См .: http://docs.python.org/library/os.path.html

Как говорили другие ответы, os.path.isdir() и os.path.isfile() — это то, что вы хотите. Однако вам нужно иметь в виду, что это не единственные два случая. Используйте os.path.islink() для символических ссылок, например. Кроме того, все они возвращают False если файл не существует, поэтому вы, вероятно, захотите также проверить с помощью os.path.exists() .

Если вы просто переходите через набор каталогов, вам может быть лучше просто попробовать os.chdir и дать сообщение об ошибке / предупреждении, если оно не выполнено:

Python 3.4 представил модуль pathlib в стандартную библиотеку, которая обеспечивает объектно-ориентированный подход для обработки путей файловой системы. Методами relavant будут .is_file() и .is_dir() :

Pathlib также доступен на Python 2.7 через модуль pathlib2 на PyPi.

список Как определить, является ли файл обычным файлом или каталогом, используя python

python проверить существование папки (6)

Как вы проверяете, является ли файл нормальным файлом или каталогом с помощью python?

os.path.isdir() и os.path.isfile() должны предоставить вам то, что вы хотите. См .: http://docs.python.org/library/os.path.html

Как говорили другие ответы, os.path.isdir() и os.path.isfile() — это то, что вы хотите. Однако вам нужно иметь в виду, что это не единственные два случая. Используйте os.path.islink() для символических ссылок, например. Кроме того, все они возвращают False если файл не существует, поэтому вы, вероятно, захотите также проверить с помощью os.path.exists() .

Если вы просто переходите через набор каталогов, вам может быть лучше просто попробовать os.chdir и дать сообщение об ошибке / предупреждении, если оно не выполнено:

Python 3.4 представил модуль pathlib в стандартную библиотеку, которая обеспечивает объектно-ориентированный подход для обработки путей файловой системы. Методами relavant будут .is_file() и .is_dir() :

Pathlib также доступен на Python 2.7 через модуль pathlib2 на PyPi.

Как проверить, является ли файл обычным файлом?

Как проверить на С++, если файл является обычным файлом (и не является каталогом, трубой и т.д.)? Мне нужна функция isFile().

Я пробовал сравнивать dirp- > d_type с (unsigned char) 0x8, но он не переносится через разные системы.

6 ответов

Вам нужно вызвать stat (2) в файле, а затем использовать макрос S_ISREG на st_mode.

Вы можете использовать портативный boost::filesystem (стандартная библиотека С++ не могла это сделать до недавнего введения std:: filesystem в С++ 17):

Сам С++ не имеет дело с файловыми системами, поэтому нет портативного способа в самом языке. Примеры для платформы — stat для * nix (как уже было отмечено Мартином против Льюиса) и GetFileAttributes для Windows.

Кроме того, если вы не страдаете аллергией на Boost, существует довольно кросс-платформенный boost::filesystem .

В С++ 17 вы можете использовать std:: filesystem:: is_regular_file

Is_file — Определяет, является ли файл обычным файлом

Описание:

bool file_exists ( string $filename )

Проверяет наличие указанного файла или каталога.

Список параметров:

Путь к файлу или каталогу.

На платформах Windows, для проверки наличия файлов на сетевых ресурсах, используйте имена, подобные //computername/share/filename или \\computername\share\filename.

Возвращаемые значения:

Возвращает TRUE, если файл или каталог, указанный параметром filename, существует, иначе возвращает FALSE.

Замечание:

Данная функция возвращает FALSE для символических ссылок, указывающих на несуществующие файлы.

Если файлы недоступны из-за ограничений, налагаемых безопасным режимом, то данная функция вернет FALSE. Однако, эти файлы все еще могут быть подключены, если они располагаются в каталоге safe_mode_include_dir.

Замечание:

Проверка происходит с помощью реальных UID/GID, а не эффективных идентификаторов.

Замечание:

Так как тип integer в PHP является целым числом со знаком и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2ГБ.

Примеры:

Пример #1 Проверка существования файла:

$filename = ‘/path/to/foo.txt’; if (file_exists($filename)) < echo "Файл $filename существует"; >else

file_exists — Проверяет наличие указанного файла или каталога

file_exists

(PHP 3, PHP 4, PHP 5)

file_exists — Проверить наличие указанного файла или каталога

Описание

bool file_exists ( string filename )

Возвращзает , если файл или каталог с именем, указанным в параметре filename, существует; возвращает в обратном случае.

На платформах Windows, для проверки наличия файлов на сетевых ресурсах, используйте имена, подобные или .

Пример 1. Проверка существования файла

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка: Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url. Список упаковщиков, поддерживаемых семейством функций stat(), смотрите в Прил. M.

См.также описания функций is_readable(), is_writable(), is_file() и file().

Смотрите также:
Все функции файл
Описание на ru2.php.net
Описание на php.ru

Вам нужно имя файла в кавычках как минимум (как строка):

Кроме того, убедитесь, что правильно проверен. И тогда он будет работать только тогда, когда активируется в вашей конфигурации PHP

Попробуйте вот так:

Сначала вам нужно понять: у вас нет файлов .
Файл является объектом файловой системы , но вы делаете свой запрос с использованием протокола HTTP, который не поддерживает файлы, кроме URL-адресов.

Таким образом, вы должны запросить неиспользуемый файл, используя ваш браузер, и посмотреть код ответа.

PHP, проверка существования/наличия удаленного файла

если это не 404, вы не можете использовать какие-либо обертки, чтобы увидеть, существует ли файл, и вы должны запросить свой cdn, используя какой-либо другой протокол, например FTP

Вот простейший способ проверить, существует ли файл:

Существует большая разница между и .

php.net/manual/en/function.is-file.php возвращает true для (обычных) файлов:

Возвращает TRUE, если имя файла существует и является обычным файлом, в противном случае FALSE .

возвращает true для обоих файлов и каталогов:

Возвращает TRUE, если существует файл или каталог, указанный по имени файла; FALSE в противном случае.

Примечание.Для получения дополнительной информации по этому вопросу также проверьте этот вопрос с использованием .

вы можете использовать cURL. Вы можете получить cURL только для того, чтобы дать вам заголовки, а не тело, которое могло бы сделать его быстрее. Плохой домен всегда может занять некоторое время, потому что вы будете ждать запроса на тайм-аут; вы, вероятно, можете изменить длину таймаута, используя cURL.

читает не только файлы, но и пути. поэтому, когда пуст, команда будет работать так, как если бы она была написана следующим образом:

если каталог / images / существует, функция все равно вернет .

Обычно я пишу это так:

Если вы используете завиток, вы можете попробовать следующий скрипт:

Ссылка URL: https://hungred.com/how-to/php-check-remote-email-url-image-link-exist/

Возвращаемые значения

Возвращает , если файл или каталог, указанный параметром , существует, иначе возвращает .

Данная функция возвращает для символических ссылок, указывающих на несуществующие файлы.

Как в PHP проверить директорию на существование и удалить её?

Проверка происходит с помощью реальных UID/GID, а не эффективных идентификаторов.

Замечание: Так как тип integer в PHP является целым числом со знаком и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2ГБ.

Примеры

Пример #1 Проверка существования файла

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня .

Смотрите также

  • is_readable() — Определяет существование файла и доступен ли он для чтения
  • is_writable() — Определяет, доступен ли файл для записи
  • is_file() — Определяет, является ли файл обычным файлом
  • file() — Читает содержимое файла и помещает его в массив

Вернуться к: Файловая система

Проверка на существование

В PHP есть два способа проверки директорий на существование. Первый заключается в использовании функции file_exists(). Принцип её работы обсуждался ранее в статье о правах доступа. Напомним, что функция принимает всего один строковой параметр — путь в файловой системе. Несмотря на то, что в названии содержится слово «file» она замечательно работает с директориями.

Второй способ связан со встроенной функцией is_dir(). Она, как и file_exists() принимает относительный или абсолютный путь расположения директории. Однако помимо проверки на существование также будет подтвержден тот факт, что по данному пути находится именно директория, а не файл. Если строка описывает место расположения жесткой или символической ссылки, is_dir() осуществит переход по ней и будет анализировать конечную точку пути. В случае успеха возвращается логическое значение true, а в случае неудачи false.

//создадим новую директорию в корне сайта для проверок $dirName = «<$_SERVER[‘DOCUMENT_ROOT’]>/directory»; if (!file_exists($dirName)) < mkdir($dirName); >var_dump(file_exists($dirName)); //Рузультат: bool(true) var_dump(is_dir($dirName)); //Рузультат: bool(true)

Заметка
Функции, отвечающие за проверку директорий на существование, могут возвращать false при отсутствии прав доступа. Такие вещи не зависят от PHP-скрипта, это уровень ответственности операционной системы.

Удаление директории

Для удаления директории в PHP используется функция rmdir(). В качестве первого параметра ей необходимо передать место расположения каталога. По аналогии с вышеизложенными примерами будут возвращены логические значения true или false.

Удаление директории может показаться простой задачей. Однако в большинстве случаев это не так. Функция rmdir() работает только с пустым каталогом и возвращает false, если внутри содержится что-то ещё. В таком случае нужно использовать рекурсивное удаление.

//создадим временную директорию для демонстрации $dirName = «<$_SERVER[‘DOCUMENT_ROOT’]>/directory»; if (!file_exists($dirName)) < mkdir($dirName); >if (rmdir($dirName)) < echo ‘Директория удалена успешно’; >else

Рекурсивное удаление

Простого способа удаления заполненной директории не существует.

Ниже мы приводим два примера реализации подобного механизма. Его можно сохранить в виде функции и использовать в любой части программного кода.

Первым способом удаления директории в PHP является использование рекурсивной функции. То есть функции, которая вызывает сама себя пока выполняются определенные условия. Взгляните на пример, приведенный ниже. Он довольно прост для понимания.

Проверка существования файла на php

Мы используем стандартную функцию scandir() для перебора всего содержимого каталога. Если мы натыкаемся на файл, вызываем функцию unlink(), а если на другую директорию, используем её имя для рекурсивного вызова.

Также в PHP есть два встроенных класса RecursiveDirectoryIterator и RecursiveIteratorIterator. Их можно использовать для перебора всех уровней вложенности указанной директории. Обратите внимание, при создании экземпляра класса RecursiveIteratorIterator мы используем второй параметр RecursiveIteratorIterator::CHILD_FIRST. Он заставляет проходить в цикле все файлы и каталоги, начиная от самых вложенных. Таким образом, можно обойтись без явного вызова рекурсивной функции.

существование Как определить, является ли файл обычным файлом или каталогом, используя python

python размер файла (6)

Если вы просто переходите через набор каталогов, вам может быть лучше просто попробовать os.chdir и дать сообщение об ошибке / предупреждении, если оно не выполнено:

Как вы проверяете, является ли файл нормальным файлом или каталогом с помощью python?

Answer #1
Answer #2

Как говорили другие ответы, os.path.isdir() и os.path.isfile() — это то, что вы хотите. Однако вам нужно иметь в виду, что это не единственные два случая. Используйте os.path.islink() для символических ссылок, например. Кроме того, все они возвращают False если файл не существует, поэтому вы, вероятно, захотите также проверить с помощью os.path.exists() .

Answer #3

os.path.isdir() и os.path.isfile() должны предоставить вам то, что вы хотите. См .: http://docs.python.org/library/os.path.html

Answer #4
Answer #5

Python 3.4 представил модуль pathlib в стандартную библиотеку, которая обеспечивает объектно-ориентированный подход для обработки путей файловой системы. Методами relavant будут .is_file() и .is_dir() :

Pathlib также доступен на Python 2.7 через модуль pathlib2 на PyPi.

Илон Маск рекомендует:  Серверы netscape и iplanet
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL