包 core

包 mvc

包 orm

包 form

包 database

包 helper

包 cache

包 webcontrols

包 behavior

包 exception

包 debug

类 - Helper_Filesys

helper
类层次 class Helper_Filesys
版本 $Id: filesys.php 2212 2009-02-06 00:51:32Z dualface $

Helper_Filesys 类提供了一组简化文件系统操作的方法

部分方法来自 Yii Framework 框架的 CFileHelper 类,并作了修改。

公共方法

隐藏继承的方法

方法描述定义于
recursionGlob() 遍历指定目录及子目录下的文件,返回所有与匹配模式符合的文件名 Helper_Filesys
mkdirs() 创建一个目录树,失败抛出异常 Helper_Filesys
rmdirs() 删除指定目录及其下的所有文件和子目录,失败抛出异常 Helper_Filesys
copyDir() 复制一个目录及其子目录的文件到目的地 Helper_Filesys
findFiles() 在指定目录及其子目录中查找文件 Helper_Filesys

方法详细说明

recursionGlob() 方法

public static array recursionGlob($dir, $pattern)

$dir string
$pattern string
{return} array

遍历指定目录及子目录下的文件,返回所有与匹配模式符合的文件名


mkdirs() 方法

public static void mkdirs($dir, $mode)

$dir string 要创建的目录
$mode int 新建目录的权限
{return}

创建一个目录树,失败抛出异常

用法:

Helper_Filesys::mkdirs('/top/second/3rd');

rmdirs() 方法

public static void rmdirs($dir)

$dir string 要删除的目录
{return}

删除指定目录及其下的所有文件和子目录,失败抛出异常

用法:

// 删除 my_dir 目录及其下的所有文件和子目录
Helper_Filesys::rmdirs('/path/to/my_dir');

注意:使用该函数要非常非常小心,避免意外删除重要文件。


copyDir() 方法

public static void copyDir($src, $dst, $options)

$src
$dst
$options
{return}

复制一个目录及其子目录的文件到目的地

用法:

Helper_Filesys::copyDir($src, $dst);

如果目的地目录不存在,则会创建需要的目录。

可以通过 $options 参数控制要复制的文件,以及复制的深度。

$options 参数可用的选项有:

  • extnames: 只有指定扩展名的文件被复制

    如果不指定该参数,则查找所有扩展名的文件。

  • excludes: 排除指定的目录或文件

    "upload/avatars" 表示排除 "$dir/upload/avatars" 目录。

  • levels: 整数,指定查找的目录深度,默认为 -1。

    如果为 0 表示不查找子目录。

注意:copyDirs() 总是会排除所有以“.”开头的目录和文件。


findFiles() 方法

public static array findFiles($dir, $options)

$dir string|array 要查找文件的目录
$options array 查找选项
{return} array 包含有效文件名的数组

在指定目录及其子目录中查找文件

用法:

$files = Helper_FileSys::findFiles($dir, array(
    // 只查找扩展名为 .jpg, .jpeg, .png 和 .gif 的文件
    'extnames' => 'jpg, jpeg, png, gif',
    // 排除 .svn 目录和 upload/avatars 目录
    'excludes' => '.svn, upload/avatars',
    // 只查找 2 层子目录
    'level'    => 2,
));

findFiles() 的 $options 参数支持下列选项:

  • extnames: 字符串或数组,指定查找文件时有效的文件扩展名。

    如果不指定该参数,则查找所有扩展名的文件。

  • excludes: 字符串或数组,指定查找文件时要排除的目录或文件。

    "upload/avatars" 表示排除 "$dir/upload/avatars" 目录。

  • levels: 整数,指定查找的目录深度,默认为 -1。

    如果为 0 表示不查找子目录。

findFiles() 返回一个数组,包含了排序后的文件完整路径。