I answered my own question with a little digging on the PHPBuilder page...

is_file() and is_dir() will report everything as a directory unless you
first chdir() to the directory. After I added the chdir() it worked. Anyone
know if that's going to be changed in the future?

(I love recursion!)

<?
function Check_For_Slash($path) {
   if (substr($path, (strlen($path) - 1), 1) != "/") {
      $path = $path . "/";
   }
   return($path);
}
function Get_Directory_Listing($path) {
   $base_dir = "/inetpub/wwwroot"; // all paths will be relative to
webserver
   $base_dir = Check_For_Slash($base_dir);
   if ($dir_handle = opendir($base_dir . $path)) {
      while ($file = readdir($dir_handle)) {
         $path = Check_For_Slash($path);
         chdir($base_dir . $path);
         if (($file != ".") && ($file != "..")) {
            if (is_dir($file)) {
               chdir($base_dir . $path . $file);
               print($file . "<DIR>\n");
               Get_Directory_Listing($path . $file);
               print("</DIR>\n");
            }
            elseif (is_file($file)) {
               print("<A HREF='" . $path . $file . "'>" . $file .
"</A><BR>\n");
            }
            else {
               print("I don't know what " . $file . " is. <BR>\n");
           }
         }
      }
   closedir($dir_handle);
   }
}
Get_Directory_Listing("/somedir/public");
?>

j-

"Miha Nedok" <[EMAIL PROTECTED]> wrote in message
news:20021101235019.I23837-100000@;voyager.zrcalo.si...
>
> I had similar problems. Use strcmp() with .. and . .
> Or use filetype() to determine if it is a file or directory or ...
>
>
> Mike
>
>
> On Fri, 1 Nov 2002, Jack Kelly Dobson wrote:
>
> > Date: Fri, 1 Nov 2002 16:39:55 -0600
> > From: Jack Kelly Dobson <[EMAIL PROTECTED]>
> > To: [EMAIL PROTECTED]
> > Subject: [PHP-WIN] is_file() can't tell the difference between file and
> >     directory in Win32...
> >
> > Hello,
> >
> > This is the first time I've worked with these functions so I'm sure it's
in
> > Indian, not the arrows.
> >
> > This script identifies both files and directories as directories. What
am I
> > doing wrong here?
> >
> > I'm running as a .dll under IIS.
> >
> > <?
> > function Get_Directory_Listing($path) {
> >    if ($dir_handle = opendir($path)) {
> >       while ($file = readdir($dir_handle)) {
> >          if (($file != ".") && ($file != "..")) {
> >             if (is_file($file)) {
> >                print($file . " is a file.<BR>");
> >             }
> >             else {
> >                print($file . " is a directory.<BR>");
> >             }
> >          }
> >       }
> >    closedir($dir_handle);
> >    }
> > }
> > Get_Directory_Listing("/my_path");
> > ?>
> >
> > Thanks j-



-- 
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to