Holografix wrote:
Hi
I'm using Spl RecursiveDirectoryIterator to traverse a directory and have no
problem with it but now I'm stuck. I only need to display directories with
no files in it.
Can someone help with this?
My current code:
set_time_limit(0);
$files = new RecursiveIteratorIterator(new
RecursiveDirectoryIterator('c:\dev'),
RecursiveIteratorIterator::SELF_FIRST);
foreach($files as $file) {
if ($files->isDir()) {
echo $file . "<br/>";
}
}
I have
c:\dev
c:\dev\php
c:\dev\php\file1.php
c:\dev\php\file2.php
c:\dev\php\test
c:\dev\php\test\db
I would like to display 'test' because although there is a 'db' folder,
there are no files in c:\dev\php\test
Bets regards,
holo
This should do what you are looking to do.
Someone else might find a better way of doing it, but this will work.
<?php
set_time_limit(0);
$path = './';
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path),
RecursiveIteratorIterator::SELF_FIRST);
foreach($files as $file) {
if ($files->isDir()) {
if ( ( $results = glob($file.'/*') ) !== false ) {
$file_found = false;
foreach ( $results AS $entry ) {
if ( is_file($entry) ) {
$file_found = true;
break;
}
}
if ( !$file_found )
echo $file . " DOES NOT contain files\n";
}
}
}
--
Jim Lucas
"Some men are born to greatness, some achieve greatness,
and some have greatness thrust upon them."
Twelfth Night, Act II, Scene V
by William Shakespeare
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php