Does anyone know a solution to this problem? I’m unable to open a subdirectory within a symboliclink’d directory. I’ve confirmed that the paths are correct (even copy & pasted the path into explorer, which parsed it fine). This is a strange, annoying, bug :|.
Example:
C:\folder\symbolic_link\dir1\dir2 – opening dir2 fails.
C:\folder\symbolic_link\dir1 – works
C:\folder\real_directory\dir1\dir2 – works
C:\folder\real_directory\dir1 – works
Alright, I finally found a hack to solve this bug in php’s handling of symlinks on windows. The bug occurs when recursively iterating through files/directories using
opendir(). If a symlink to a directory exists in the current directory,opendir()will fail to read the directories in the directory symlink. It is caused by something funky in php’s statcache, and can be resolved by callingclearstatcache()before callingopendir()on the directory symlink (also, the parent directory’s file-handle must be closed).Here is an example of the fix:
Edit: It seems that
clearstatcache($path)must be called before any file-handling functions on the symlink’d dir. Php isn’t caching symlink’d dirs properly.