先来看看文件系统相关函数
目录相关 bool chdir(string $dirname); //将当前工作目录设置为dirname 成功返回true string getcwd(void); //取得当前工作目录 resource opendir(string $path); //返回一个目录资源句柄 可让readdir,rewinddir,closedir调用 string readdir([resource $handle]); //返回目录中下一个文件的文件名 void rewinddir(resource $handle); //倒回目录句柄到开始 void closedir([resource $handle]); //关闭一个由opendir打开的目录资源 //直接扫描一个目录 返回目录下所有文件名组成的数组 sorting_order指定排序 默认按字母升序 设置1则是降序 array scandir(string $dirname, [int $sorting_order]); //返回所有与模式pattern匹配的文件名组成的数组 返回的是完整文件路径 flags指定可选参数 array glob(string $pattern, [int $flags = 0]); string basename(string $path, [string $suffix]); //返回路径path的文件名部分 suffix指定去掉的文件名后缀 string dirname(string $path); //返回文件的目录或返回目录的父目录文件相关 bool mkdir(string $pathname, [int $mode = 0777]); //创建目录pathname mode指定权限 windows下无效 成功返回true bool rmdir(string $dirname); //删除目录dirname 目录必须为空且有权限 成功返回true //设定文件的修改时间和访问时间,如果文件不存在则创建 mtime指定修改时间 atime指定访问时间 默认都是time() 成功返回true bool touch(string $filename, [int $mtime, int $atime]); bool unlink(string $filename); //删除文件filename 成功返回true bool copy(string $source, string $dest); //将文件source复制到dest 成功返回true bool rename(string $oldname,string $newname); //将文件oldname重命名为newname 成功返回true bool file_exists(string $filename); //检查文件或目录 是否存在 bool is_dir(string $filename); //检查是否是一个目录 bool is_file(string $filename); //检查是否是一个文件 bool is_link(string $filename); //检查是否是一个符号链接 bool is_executable(string $filename); //检查文件是否可以执行 bool is_readable(string $filename); //检查文件是否可读 bool is_writeable(string $filename); //检查文件是否可写 bool is_uploaded_file(string $filename); //检查文件是否通过POST上传的 resource fopen(string $filename, string $mode); //根据mode打开一个文件或URL 返回资源句柄 string fread(resource $handle, int $length); //返回从文件资源handle读取长度为length的字节 遇到结尾EOF则停止 int fwrite(resource $handle, string $str,[int $length]); //写入字符串str到文件指针handle处 返回写入的字节 //锁定文件handle LOCK_SH共享 LOCK_EX独占 LOCK_UN解锁 LOCK_NB避免堵塞 成功返回true bool flock(resource $handle, LOCK_SH|LOCK_EX|LOCK_UN|LOCK_NB); bool fclose(resource $handle); //关闭文件指针 string file_get_contents(string $filename); //将文件数据一次性读出 返回字符串数据 失败返回false int file_put_contents(string $filename,mixed $data); //将数据data一次性写入文件 返回写入的字节 失败返回false int readfile(string $filename); //直接读取并输出文件内容 返回读取的字节 int filesize(string $filename); //返回文件的尺寸 以字节为单元 失败返回false string filetype(string $filename); //返回文件类型 int filectime(); //返回文件创建时间 int fileatime(); //返回文件访问时间 int filemtime(); //返回文件修改时间 string realpath(string $filename); //返回规范化的绝对路径 如果文件不存在返回false //如果文件filename合法则移动到目标dest处并返回true 如果不合法返回false bool move_uploaded_file(string $filename, string $dest);
下面来实现下统计目录,删除目录,复制目录等常用操作:
'; echo '目录复制中...'; dirCopy($dir, 'test1/'); echo '目录复制完成'; echo '目录删除中...'; dirDel($dir); dirDel('test1/'); echo '目录删除完成'; echo '总计用时: '.round(microtime(true)-time(),3).'秒'; echo '内存使用: '.round((memory_get_peak_usage()-$mem)/1000,3).'KB';