yiisoft/files

文件和目录管理助手

2.0.0 2022-07-05 06:43 UTC

This package is auto-updated.

Last update: 2024-09-07 15:28:16 UTC


README

Yii

Yii 文件


Latest Stable Version Total Downloads Build status Code Coverage Mutation testing badge static analysis type-coverage

该包提供管理文件和目录的有用方法。

要求

  • PHP 8.0 或更高版本。

安装

可以使用 Composer 安装此包。

composer require yiisoft/files

FileHelper 使用

FileHelper 提供静态方法,可用于各种文件系统相关操作。

目录操作

确保目录存在

use \Yiisoft\Files\FileHelper;

$directory = '/path/to/dir';
FileHelper::ensureDirectory($directory);

确保目录存在,并设置了指定的权限

use \Yiisoft\Files\FileHelper;

$directory = '/path/to/dir';
FileHelper::ensureDirectory($directory, 0775);

删除目录

use \Yiisoft\Files\FileHelper;

$directory = '/path/to/dir';
FileHelper::removeDirectory($directory);

删除目录内的所有内容,但不删除目录本身

use \Yiisoft\Files\FileHelper;

$directory = '/path/to/dir';
FileHelper::clearDirectory($directory, [
    'traverseSymlinks' => false,
    'filter' => (new PathMatcher())
        ->only('**.png', '**.jpg')
        ->except('**/logo.png'),
]);

检查目录是否为空

use \Yiisoft\Files\FileHelper;

$directory = '/path/to/dir';
FileHelper::isEmptyDirectory($directory);

复制目录

use \Yiisoft\Files\FileHelper;

$source = '/path/to/source';
$destination = '/path/to/destination';
FileHelper::copyDirectory($source, $destination);

可以作为第三个参数指定额外的选项,例如 filtercopyEmptyDirectories。请检查方法的 phpdoc 以获取完整的选项列表。

复制文件

use \Yiisoft\Files\FileHelper;

$source = '/path/to/file';
$destination = '/path/to/destination';
FileHelper::copyFile($source, $destination);

可以作为第三个参数指定额外的选项,例如 beforeCopyafterCopy。请检查方法的 phpdoc 以获取完整的选项列表。

搜索

搜索文件

use \Yiisoft\Files\FileHelper;
use Yiisoft\Files\PathMatcher\PathMatcher;

$files = FileHelper::findFiles('/path/to/where/to/search', [
    'filter' => (new PathMatcher())
        ->only('**.png', '**.jpg')
        ->except('**/logo.png'),
]);

搜索目录

use \Yiisoft\Files\FileHelper;
use Yiisoft\Files\PathMatcher\PathMatcher;

$directories = FileHelper::findDirectories('/path/to/where/to/search', [
    'filter' => (new PathMatcher())->except('**meta'),
]);

路径匹配器

可以通过方法的 options 参数中的 filter 键传递 PathMatcherInterface。两者 PathMatcherCompositeMatcher 都实现了 PathMatcherInterfaceCompositeMatcher 允许按顺序使用一组 PathMatcherInterface

模式匹配基于 yiisoft/strings和其自述文件中的描述

其他

打开文件。与 PHP 的 fopen() 相同,但会抛出异常。

use \Yiisoft\Files\FileHelper;

$handler = FileHelper::openFile('/path/to/file', 'rb');

获取目录或文件的最后修改时间

use \Yiisoft\Files\FileHelper;

$directory = '/path/to/dir';
$time = FileHelper::lastModifiedTime($directory);

此方法与 PHP 的 filemtime() 不同,因为它实际上会扫描目录并从所有文件中选择最大的修改时间。

删除文件或符号链接

use \Yiisoft\Files\FileHelper;

$file = '/path/to/file.txt';
FileHelper::unlink($file);

规范化路径

use \Yiisoft\Files\FileHelper;

$path = '/home/samdark/./test/..///dev\yii/';
echo FileHelper::normalizePath($path);
// outputs:
// /home/samdark/dev/yii

文档

如果您需要帮助或有问题,Yii 论坛 是一个好地方。您还可以查看其他 Yii 社区资源

许可

Yii 文件是自由软件。它根据 BSD 许可证发布。有关更多信息,请参阅 LICENSE

Yii 软件 维护。

支持项目

Open Collective

关注更新

Official website Twitter Telegram Facebook Slack