@Qwerty_ABC

Записывает размер директории по 2 раза в рекурсию JSON. Что делать?

Есть данный скрипт:
<?php
function getFilesSize($path)
{
    $fileSize = 0;
    $dirr = scandir($path);

    foreach($dirr as $file)
    {
        if (($file!='.') && ($file!='..'))
            if(is_dir($path . '/' . $file))
                $fileSize += getFilesSize($path.'/'.$file);
            else
                $fileSize += filesize($path . '/' . $file);
    }
    return $fileSize;
}

function tree($dirName) {
  $tree = [];
  $dir = opendir($dirName);
  while (($entry = readdir($dir)) !== false) {
    if ($entry === '.' || $entry === '..') {
      continue;
    }
    $fullName = "{$dirName}\\{$entry}";
    if (is_dir($fullName)) {
      $tree[] = [
		'type' => 'dir',
        'name' => $entry,
		'size' => getFilesSize($dirName),
        'data' => tree($fullName)
      ];
    } else {
      $tree[] = [
		'type' => 'file',
        'name' => $entry,
		'data_change' => time(),
		'size' => filesize($fullName),
		'hash' => md5_file($fullName)
      ];
    }
  }
  return $tree;
}

file_put_contents("update.json", (json_encode(tree('C:\MY_PROJECT'), JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT)));
?>

Он записывает JSON файл с рекурсией директорий с их размером:
60e5b45114a2e716149097.png
60e5b4ed15bcc672260374.png
Но запись размера делает он это почему-то по 2 раза и более...
В первой директории правильный общий размер, а в следующей идёт такой-же и этот же размер может повторяются ещё несколько раз...
  • Вопрос задан
  • 39 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы