By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
425,501 Members | 1,678 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 425,501 IT Pros & Developers. It's quick & easy.

Problems with mkdir() and is_dir()

P: n/a
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 getDirectoryList($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;
}
}

}

getDirectoryList();

?>

Here's what I get:

directory:.
directory:..
dunno:delete.png
dunno:rename.png
dunno:view.png
directory:images
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

Feb 23 '06 #1
Share this Question
Share on Google+
2 Replies


P: n/a
Juby wrote:
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 getDirectoryList($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;
}
}

}

getDirectoryList();

?>

Here's what I get:

directory:.
directory:..
dunno:delete.png
dunno:rename.png
dunno:view.png
directory:images
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

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
Feb 24 '06 #2

P: n/a
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

Feb 28 '06 #3

This discussion thread is closed

Replies have been disabled for this discussion.