| Re_action 2004-11-30, 4:00 pm |
| Hello Vincent,
It'a bad way to do so, becouse the default sharing (like c$, d$,
admins$) could be turned off. This code, should work fine, if the
user, under witch php is running have permissions to access target
folder:
$dir="C:\\Documents and Settings\\pravin\\Desktop\\abcd2\\";
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
echo "filename: $file : filetype: " . filetype($dir.$file) ."\n";
}
closedir($dh);
}
}
$dir = dir($source);
Also, on win32 system you have to use double slashes in path.
VD> Hi,
VD> I experienced the same problem some time ago.
VD> Try to use \\remote_computer instead of a mounted drive (G:\).
VD> Also, there is something like a BUG in is_dir().
VD> The is_dir function does not return the good value for remote
VD> shares. Use !is_file() instead of is_dir().
VD> Make sure your script or the user running the script has
VD> access to the remote drive. I use IIS to do this. Don't know for
VD> apache but you must be able to run the apache service with a
VD> specific user.
VD> here is a code sample that works for me on paths like //remote_computer/d$/Temp/ :
VD> function getChildrenFiles($dir){
VD> $output = array();
VD> $files = array();
VD> if((!is_file($dir))&&($dir_handle = opendir($dir))){
VD> //use !is_file instead of is_dir because of a bug in is_dir with windows shares
VD> while($file = readdir($dir_handle)){
VD> if($file !== "." && $file !== ".."){
VD> $files[] = $file;
VD> }//if
VD> }//while
VD> closedir($dir_handle);
VD> for($i=0; $i<sizeof($files);$i++){
VD> $tmpFile = new FileClass("$dir/".$files[$i]);
if (($tmpFile->>isFile())
VD> &&(isset($this->allowedExtensions))
VD> &&(sizeof($this->allowedExtensions)>0)
VD> &&(in_array($tmpFile->getExtension(), $this->allowedExtensions))){
VD> $output[] = $tmpFile;
VD> }
VD> elseif(($tmpFile->isFile())&&((!isset($this->allowedExtensions))||(sizeof($this->allowedExtensions)==0))){
VD> $output[] = $tmpFile;
VD> }
VD> else{
VD> $tmpFile=NULL;
VD> }
VD> }//wfor
VD> }//if
VD> else{
VD> //DEBUG //print("NOT DIR or NOT OPENABLE<br />");
VD> }
VD> reset($output);
VD> return $output;
VD> }
VD> -----Original Message-----
VD> From: Gryffyn, Trevor [mailto:TGryffyn@air-cargo-inc.com]
VD> Sent: mardi 30 novembre 2004 15:40
VD> To: php-windows@lists.php.net
VD> Cc: Mike; Pravin-Kumar
VD> Subject: RE: [PHP-WIN] problem to open dir
VD> I think ' is going to quote the single-quote too. Best to quote the
VD> backslashes I guess. Change all the \ to \\
VD> Also.. Silly question.. But that directory DOES exist, right?
VD> I assume the is_dir() line is 69 and the opendir() is line 70, correct?
VD> -TG
[color=darkred]
--
Best regards,
re_action mailto:re_action@fromru.com
|