Returns the full path of files.
\bbn\X::dump(\bbn\File\Dir::getFiles("/home/Docs/Test"));
// (array) ['/home/Docs/Test/file.txt']
\bbn\X::dump(\bbn\File\Dir::getFiles("/home/Docs/Test",0,1));
// (array) ['/home/Docs/Test/file.txt', '/home/Docs/Test/.doc.pdf']
\bbn\X::dump(\bbn\File\Dir::getFiles("/home/Docs/Test", 1));
// (array) ['/home/Docs/Test/folder', '/home/Docs/Test/file.txt']
\bbn\X::dump(\bbn\File\Dir::getFiles("/home/Docs/Test", 1,1));
// (array) ['/home/Docs/Test/folder', '/home/Docs/Test/.folder_test','/home/Docs/Test/file.txt', '/home/Docs/Test/.doc.pdf']
function($dir, $including_dirs = false, $hidden = false, $extension = NULL)
{
$dir = self::clean($dir);
clearstatcache();
if ( $dir === './' ){
$dir = '.';
}
if ( is_dir($dir) && (($dir === '.') || ((strpos(X::basename($dir), '.') !== 0) || $hidden)) ){
$files = [];
$fs = scandir($dir, SCANDIR_SORT_ASCENDING );
//$encodings = ['UTF-8', 'WINDOWS-1252', 'ISO-8859-1', 'ISO-8859-15'];
foreach ( $fs as $f ){
if ( $f !== '.' && $f !== '..' ){
/*
$enc = mb_detect_encoding($f, $encodings);
if ( $enc !== 'UTF-8' ){
$f = html_entity_decode(htmlentities($f, ENT_QUOTES, $enc), ENT_QUOTES , 'UTF-8');
}
*/
if ( $hidden || (strpos(X::basename($f), '.') !== 0) ){
if ( $including_dirs ){
$files[] = self::cur($dir.'/').$f;
}
else if ( is_file($dir.'/'.$f) ){
if ( !$extension || (strtolower($extension) === strtolower(bbn\Str::fileExt($f))) ){
$files[] = self::cur($dir.'/').$f;
}
}
}
}
}
if ( \count($files) > 0 ){
bbn\X::sort($files);
}
return $files;
}
return false;
}