return implode('/', $r);
}
+ /**
+ * @param $path
+ * @param $recursive
+ * @param $countDirectories
+ * @return int
+ */
+ public static function count($path, $recursive = true, $countDirectories = false)
+ {
+ $res = 0;
+ if ($recursive) {
+ $it = new RecursiveDirectoryIterator($path);
+ } else {
+ $it = new \DirectoryIterator($path);
+ }
+ foreach ($it as $item) {
+ /** @var $item \SplFileInfo */
+ if (!$countDirectories && !$item->isFile()) {
+ continue;
+ }
+ $res++;
+ }
+ return $res;
+ }
}
\ No newline at end of file
<?php
namespace Cubist\Util\Files;
+use FilesystemIterator;
+
class RecursiveDirectoryIterator extends \RecursiveFilterIterator {
protected $_exclude = array();
if ($path instanceof \RecursiveIterator) {
$it = $path;
} else {
- $it = new \RecursiveDirectoryIterator($path, \FilesystemIterator::SKIP_DOTS);
+ $it = new \RecursiveDirectoryIterator($path, FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS);
}
$this->_exclude = $exclude;