Problems with mkdir() and is_dir()

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Juby

    Problems with mkdir() and is_dir()

    I'm creating a script for our website which will function as something
    of a docment manager. The backend features an option to create a new
    directory in the uploads subdirectory. The problem is, once I've used
    mkdir() to create this file, when I later run is_dir() on the filename,
    I get 'false'. Even worse, if I run is_file() on the new directories,
    I get false as well. The same thing seems to be happening to files I
    submit via the script, though that is less of a worry (I never actually
    *need* to run this test). Here is a copy of a smaller script I threw
    together trying to figure out what exactly was going on:

    <?php

    function getDirectoryLis t($root="(this is where the directory I'm
    working in goes)"){

    clearstatcache( );

    $dir = dir($root);

    while($file = readdir($dir->handle)){
    if(is_dir($file )){
    echo "<br />directory:" . $file;
    } elseif(is_file( $file)){
    echo "<br />file:" . $file;
    } else {
    echo "<br />dunno:" . $file;
    }
    }

    }

    getDirectoryLis t();

    ?>

    Here's what I get:

    directory:.
    directory:..
    dunno:delete.pn g
    dunno:rename.pn g
    dunno:view.png
    directory:image s
    dunno:PDFs
    dunno:somecrap

    The last two, PDFs and somecrap, are folders created with mkdir(). The
    ..pngs are files uploaded via a PHP script. Is this some kind of fluke
    with PHP, or is there anything I can do? Thank you all in advance for
    your help.

    Peace,
    Juby

  • Erwin Moller

    #2
    Re: Problems with mkdir() and is_dir()

    Juby wrote:
    [color=blue]
    > I'm creating a script for our website which will function as something
    > of a docment manager. The backend features an option to create a new
    > directory in the uploads subdirectory. The problem is, once I've used
    > mkdir() to create this file, when I later run is_dir() on the filename,
    > I get 'false'. Even worse, if I run is_file() on the new directories,
    > I get false as well. The same thing seems to be happening to files I
    > submit via the script, though that is less of a worry (I never actually
    > *need* to run this test). Here is a copy of a smaller script I threw
    > together trying to figure out what exactly was going on:
    >
    > <?php
    >
    > function getDirectoryLis t($root="(this is where the directory I'm
    > working in goes)"){
    >
    > clearstatcache( );
    >
    > $dir = dir($root);
    >
    > while($file = readdir($dir->handle)){
    > if(is_dir($file )){
    > echo "<br />directory:" . $file;
    > } elseif(is_file( $file)){
    > echo "<br />file:" . $file;
    > } else {
    > echo "<br />dunno:" . $file;
    > }
    > }
    >
    > }
    >
    > getDirectoryLis t();
    >
    > ?>
    >
    > Here's what I get:
    >
    > directory:.
    > directory:..
    > dunno:delete.pn g
    > dunno:rename.pn g
    > dunno:view.png
    > directory:image s
    > dunno:PDFs
    > dunno:somecrap
    >
    > The last two, PDFs and somecrap, are folders created with mkdir(). The
    > .pngs are files uploaded via a PHP script. Is this some kind of fluke
    > with PHP, or is there anything I can do? Thank you all in advance for
    > your help.
    >
    > Peace,
    > Juby[/color]


    Hi Juby,

    Where is the directory excactly?
    How does the path look?
    Is it some networkmapped directory, samba, etc?

    Maybe you forgot to use \ before / ?

    If you provide that info, maybe we can find the problem.

    Regards,
    Erwin Moller

    Comment

    • Juby

      #3
      Re: Problems with mkdir() and is_dir()

      Erwin,

      Thanks for your help, but I actually figured it out. It turned out
      that the script was looking in its own directory for these files, not
      the directory I was having it search. I just prepended the $root
      string onto the $file variable, and everything worked smooth as silk.
      Hopefully someone else runs across this and figures out their own
      stupidity before making a public fool of themselves, like I did! :-)

      Peace,
      Andrew Juby

      Comment

      Working...