ID: 48746
Comment by: phpstuff at cresstone dot com
Reported By: ddkees at illinois dot edu
Status: Feedback
Bug Type: Directory function related
Operating System: win32 only - Windows Server 2003
PHP Version: 5.3.0
Assigned To: pajoye
New Comment:
Using Windows 7 x64. It seems all files in my mounted volumes are being
treated as directories. (is_dir returns true, is_file returns false.)
Directory operations pointed at files seem to point back to the root of
the volume.
The following script:
echo "dumping: scandir('mounted_volume')\n";
var_dump(scandir('mounted_volume'));
echo "dumping: scandir('mounted_volume\\file1')\n";
var_dump(scandir('mounted_volume\file1'));
gives this output:
dumping: scandir('mounted_volume')
array(4) {
[0]=>
string(12) "$RECYCLE.BIN"
[1]=>
string(4) "dir1"
[2]=>
string(4) "dir2"
[3]=>
string(5) "file1"
}
dumping: scandir('mounted_volume\file1')
array(4) {
[0]=>
string(12) "$RECYCLE.BIN"
[1]=>
string(4) "dir1"
[2]=>
string(4) "dir2"
[3]=>
string(5) "file1"
}
Nesting does not seem to matter, eg:
scandir('mounted_volume\dir1\file_in_dir1'); gives the same output
Something else that's interesting... When I create the junction from a
drive letter, eg: "mklink mounted_volume y:" everything works perfectly,
files are files and dirs are dirs. It's only when I use the volume name
in the creation ("mklink /J mounted_volume
\\?\Volume{feeac7c1-2ad0-11de-89bb-001fd0ae05ac}\") that I get this
strange behavior. Bizarre, but I swear I'm not making this up :)
Previous Comments:
------------------------------------------------------------------------
[2009-09-02 10:35:32] [email protected]
Can't reproduce here. Which OS are you using for this test?
------------------------------------------------------------------------
[2009-09-02 10:30:20] [email protected]
Oh my, I'm about to loose my last hair :)
But we are getting close now... back to code
------------------------------------------------------------------------
[2009-09-02 10:12:22] phpstuff at cresstone dot com
sorry, found another mounted volume issue:
is_dir reutrns true when passed a file on a mounted volume.
Additionaly, chdir retruns true when passed that file.
eg: is_dir('c:\mounted_volume\image.jpg'); returns true. image.jpg is a
file and mounted_volume is a junction point mounted volume.
------------------------------------------------------------------------
[2009-09-02 09:31:36] phpstuff at cresstone dot com
Everything seems to be working as of the latest snapshot, thanks.
------------------------------------------------------------------------
[2009-09-01 17:54:20] [email protected]
scandir has been fixed (not directly related to this issue) as well as
the mounted points issues. All regressions should be fixed now. Can you
give it a try please? The next snapshot will have the fixes.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/48746
--
Edit this bug report at http://bugs.php.net/?id=48746&edit=1