由于tempnam()函数生成的临时文件方法得到目录下唯一的文件名,再删除该临时文件。批量处理时产生大量磁盘碎片。本函数可以帮助获得该目录下不存在的文件。
/**
* 得到某个目录下所有的文件名。
* @param String $dir
* @return Array
*
*/
public function getFileName($dir) {
$array = array();
//1、先打开要操作的目录,并用一个变量指向它
//打开当前目录下的目录pic下的子目录common。
$handler = opendir($dir);
//2、循环的读取目录下的所有文件
/* 其中$filename = readdir($handler)是每次循环的时候将读取的文件名赋值给$filename,为了不陷于死循环,所以还要让$filename !== false。一定要用!==,因为如果某个文件名如果叫’0′,或者某些被系统认为是代表false,用!=就会停止循环 */
while (($filename = readdir($handler)) !== false) {
// 3、目录下都会有两个文件,名字为’.'和‘..’,不要对他们进行操作
if ($filename != '.' && $filename != '..') {
// 4、进行处理
array_push($array, $filename);
}
}
//5、关闭目录
closedir($handler);
return $array;
}