ID: 35691 Comment by: erik dot waibel at cubic dot com Reported By: ejwaibel at gmail dot com Status: Feedback Bug Type: *Directory/Filesystem functions Operating System: Windows PHP Version: 5.1.1 New Comment:
This is what I get when running the code with an existing drive (such as C:) Files in current directory... Array ( [0] => TCdetails.php [1] => TCgetdata.php [2] => TCgetversion.php [3] => TCmanual.php [4] => TCpreview.php [5] => TCprocess.php [6] => TCsearch.php [7] => changes.php [8] => checklist.php [9] => details.php [10] => footer.php [11] => getarq.php [12] => getdata.php [13] => help.php [14] => hints.php [15] => import.php [16] => login.php [17] => manual.php [18] => modules.php [19] => password.php [20] => phpinfo.php [21] => process.php [22] => search.php [23] => srnform_windows.php [24] => stscr.php [25] => user.php ) string(35) "d:\scmtools\test\ctssrn-enhancement" CWD: bool(true) Change dir: string(3) "C:\" CWD: Files in CWD... Array ( [0] => AUTOEXEC.BAT [1] => CONFIG.SYS [2] => Documents and Settings [3] => IO.SYS [4] => Inetpub [5] => MSDOS.SYS [6] => NTDETECT.COM [7] => PHP [8] => Perl [9] => Program Files [10] => RECYCLER [11] => System Volume Information [12] => WINDOWS [13] => boot.ini [14] => dsn [15] => dsn.dir [16] => dsn.pag [17] => mvfslogs [18] => ntldr [19] => pagefile.sys [20] => temp.log [21] => wmpub ) This is what I get when I change to the drive that is being 'subst': Files in current directory... Array ( [0] => TCdetails.php [1] => TCgetdata.php [2] => TCgetversion.php [3] => TCmanual.php [4] => TCpreview.php [5] => TCprocess.php [6] => TCsearch.php [7] => changes.php [8] => checklist.php [9] => details.php [10] => footer.php [11] => getarq.php [12] => getdata.php [13] => help.php [14] => hints.php [15] => import.php [16] => login.php [17] => manual.php [18] => modules.php [19] => password.php [20] => phpinfo.php [21] => process.php [22] => search.php [23] => srnform_windows.php [24] => stscr.php [25] => user.php ) string(35) "d:\scmtools\test\ctssrn-enhancement" CWD: bool(false) Change dir: string(35) "d:\scmtools\test\ctssrn-enhancement" CWD: Files in CWD... Array ( [0] => TCdetails.php [1] => TCgetdata.php [2] => TCgetversion.php [3] => TCmanual.php [4] => TCpreview.php [5] => TCprocess.php [6] => TCsearch.php [7] => cc-get-modules.exe [8] => cc-import.exe [9] => changes.php [10] => checklist.php [11] => details.php [12] => error_log.log [13] => footer.php [14] => getarq.php [15] => getdata.php [16] => help.php [17] => hints.php [18] => import.php [19] => login.php [20] => manual.php [21] => modules.php [22] => password.php [23] => phpinfo.php [24] => process.php [25] => search.php [26] => srnform_windows.php [27] => stscr.php [28] => user.php ) Previous Comments: ------------------------------------------------------------------------ [2005-12-19 00:14:44] [EMAIL PROTECTED] I've also tested with networked drives and it works fine. can you please test with a simple script like: <?php // list the files in this directory print_r(glob('*.php')); var_dump(getcwd()); // change to another drive (replace with something existent) var_dump(chdir('Z:')); var_dump(getcwd()); print_r(glob('*')); ?> Please include all error messages printed by PHP. ------------------------------------------------------------------------ [2005-12-16 16:41:50] erik dot waibel at cubic dot com I updated my PHP version to the Windows .zip file that you included, but that still did not work. We are using a Windows NT 5.2 build 3790 machine (it's a Windows NT server). I actually just checked and it seems like I can change to the "C:" drive, but what I forgot to mention earlier, here is another piece of my code that is used to "subst" the Q: drive for a directory that exists on another drive. $subst = exec("subst $substDrive M:\\$sessionView", $substOutput); $currentDir = getcwd(); $changeTo = "$substDrive\\sdadmin"; chdir("$changeTo") || die("Can't change location to: $changeTo."); The reason I'm doing this is because of our Source Control program "ClearCase" that we use. Can you let me know if there is another way I should do this? ------------------------------------------------------------------------ [2005-12-16 14:06:53] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php5.1-latest.tar.gz For Windows: http://snaps.php.net/win32/php5.1-win32-latest.zip Sorry, but I can't reproduce this behaviour. I'm able to chdir() between drives with PHP 5.1.2 from snaps.php.net and with PHP 6 built by me. I've also tested on two different machines with windows XP. And what is your windows version? ------------------------------------------------------------------------ [2005-12-15 21:09:52] ejwaibel at gmail dot com Description: ------------ The chdir() command works correctly when changing to a given dir in the SAME drive, however, I believe that it should be capable of changing to another drive letter and then directory in that drive letter. I know that Windows can do that using "cd /D <path>". Reproduce code: --------------- $currentDir = getcwd(); echo "currentDir: $currentDir<br/>"; chdir("Q:\\sdadmin") || die(sendMessage("Can't change to '$substDrive\\sdadmin'", true)); echo getcwd(); Expected result: ---------------- I would have expected to change from "D:\scmtools\oss\" to "Q:\sdadmin". Actual result: -------------- The chdir() function returns false and I show an error message. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=35691&edit=1