PHP's mkdir function trouble on Windows

CodeDevelopr picture CodeDevelopr · Jan 9, 2012 · Viewed 13.4k times · Source

I am working on a command line program in PHP and I am having trouble, my first problem is when I call PHP's mkdir() it is giving me this error

Warning: mkdir(): No such file or directory in 
E:\Server\_ImageOptimize\OptimizeImage.php
on line 196

I then read in the PHP docs a user comment that said that the forward slash / does not work with this method under Windows but on Unix.

So I then changed my code to change them to backslashes but it did not change anything for me, I still got the same error on the same line.

Here is the code below can someone help me figure this out please

// I tried both of these below
$tmp_path = '\tmp\e0bf7d6';
//$tmp_path = '/tmp/e0bf7d6';

echo $tmp_path;

mkdir($tmp_path);

Answer

mario picture mario · Jan 9, 2012

The actual problem is that mkdir() only creates one subdirectory per call, but you passed it a path of two non-existant directories. You would normally have to do this step by step:

mkdir("/tmp");
mkdir("/tmp/e0b093u209");
mkdir("/tmp/e0b093u209/thirddir");

Or use the third parameter shortcut:

mkdir("/tmp/e0b093u209", 0777, TRUE);