Path.php
См. документацию.
1 <?php
2 
3 /**
4  * @file
5  * @brief очистка и удаление каталогов
6  *
7  */
8 
9 namespace Wrong\File;
10 
11 /**
12  * @brief Path удаляет и очищает каталоги
13  *
14  */
15 
16 class Path
17 {
18  /**
19  * Если каталог не существует, создает его
20  *
21  * @param string $filename Полный путь к файлу, каталог под который нужно создать.
22  */
23  public static function mkdir($filename)
24  {
25  if (!file_exists(dirname($filename))) {
26  mkdir(dirname($filename), 0755, true);
27  }
28  }
29 
30  /**
31  * Рекурсивно удалить файл и его родительские каталоги, если они пусты
32  *
33  * @param string $filename Файл для удаления.
34  */
35  public static function rm($filename)
36  {
37  $result = false;
38  if (is_file($filename) && unlink($filename)) {
39  $result = true;
40  }
41  $dir = dirname($filename);
42  if (is_dir($dir) && file_exists($dir) && !(new \FilesystemIterator($dir))->valid() && rmdir($dir)) {
43  $result = true;
44  self::rm($dir);
45  }
46  return $result;
47  }
48 
49  /**
50  * если каталог пуст, удаляет его, а затем рекурсивно вызывает функцию в родительском каталоге.
51  *
52  * @param string $filename уже несуществующий файл каталога.
53  */
54  public static function rmdir($filename)
55  {
56  $result = false;
57  $dir = dirname($filename);
58  if (!(new \FilesystemIterator($dir))->valid() && rmdir($dir)) {
59  $result = true;
60  self::rmdir($dir);
61  }
62  return $result;
63  }
64 
65 }
Path удаляет и очищает каталоги
Definition: Path.php:17
static rm($filename)
Definition: Path.php:35
static mkdir($filename)
Definition: Path.php:23
static rmdir($filename)
Definition: Path.php:54