<pre>
<?php
/*PHP目录函数
*2009.12.08
*/
//1.dir()
echo ‘<b>1.dir()</b><br />’;
//仿冒面向对象的机制来读取一个目录
$d = dir(“../PHPFunction”);
echo “Handle: ” . $d->handle . “\n”;//handle 属性可以用在其它目录函数例如 readdir(),rewinddir() 和 closedir() 中
echo “Path: ” . $d->path . “\n”;//path 属性被设为被打开的目录路径。有三个方法可用:read,rewind 和 close。
while (false !== ($entry = $d->read())) {
echo $entry.”\n”;
}
$d->close();
echo ‘————<br />’;
//2.getcwd()、chdir()
echo ‘<b>2.getcwd()、chdir()</b><br />’;
//取得当前工作目录
echo getcwd() . “\n”;
//更改当前目录为PHPFunction_2
chdir(‘PHPFunction_2′);//为什么会警告?
echo getcwd() . “\n”;
echo ‘————<br />’;
//3.scandir()
//列出指定路径中的文件和目录
echo ‘<b>3.scandir()</b><br />’;
$dir = ‘../PHPFunction’;
$files1 = scandir($dir);//升序
$files2 = scandir($dir, 1);//降序
print_r($files1);
print_r($files2);
echo ‘————<br />’;
//4.opendir ()
//打开一个目录句柄,可用于之后的 closedir(),readdir() 和 rewinddir() 调用中。
echo ‘<b>4.opendir ()</b><br />’;
$dir = “../PHPFunction”;
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
echo “filename: $file : filetype: ” . filetype($dir . $file) . “\n”;//为什么会警告?
}
closedir($dh);
}
}
echo ‘————<br />’;
//5.readdir()
//打开一个目录句柄,可用于之后的 closedir(),readdir() 和 rewinddir() 调用中。
echo ‘<b>5.readdir()</b><br />’;
if ($handle = opendir(‘../PHPFunction’)) {
echo “Directory handle: $handle\n”;
echo “Files:\n”;
/* 这是正确地遍历目录方法 */
while (false !== ($file = readdir($handle))) {
echo “$file\n”;
}
/* 这是错误地遍历目录的方法 */
while ($file = readdir($handle)) {
echo “$file\n”;
}
closedir($handle);
}
echo ‘————<br />’;
?>