originphp/filesystem

OriginPHP 文件系统

3.1.0 2021-04-13 12:46 UTC

This package is auto-updated.

Last update: 2024-09-13 20:13:34 UTC


README

license build coverage

文件系统包含用于处理文件系统的 FileFolder 类。

安装

要安装此软件包

$ composer require originphp/filesystem

文件

文件实用工具以易于使用和可预测的方式包装了一些重要功能。

要使用文件实用工具,请将以下内容添加到文件顶部。

use Origin\Filesystem\File

信息

自 2.0 版起,路径已重命名为目录,文件名已重命名为名称

要获取有关文件的信息

$info = File::info('/var/www/config/insurance.csv');

这将返回一个类似这样的数组

Array
(
    [name] => insurance.csv
    [directory] => /var/www/config
    [timestamp] => 1560067334
    [size] => 1878
    [extension] => csv
    [type] => text/plain
)

读取

要读取文件

$contents = File::read('/path/somefile');

写入

要写入文件

File::write('/path/somefile','data goes here');

追加

要将内容追加到文件中

File::append('/path/somefile','and here.');

删除

要删除文件

File::delete('/path/somefile');

存在

要检查文件是否存在

$result = File::exists('/path/somefile');

临时文件

当需要处理临时文件时,请使用 tmp,这将创建文件,放入内容,并返回带有路径的文件名。

$tmpFile = File::tmp('Some temp data');

复制

要复制文件

File::copy('/path/somefile','somefile-backup');
File::copy('/path/somefile','/another_path/somefile');

重命名

要重命名文件

File::rename('/path/somefile','new_name');

移动

要移动文件

File::move('/path/somefile','/another_path/somefile');

权限

获取权限

要获取文件的权限

$permissions = File::perms('/path/somefile'); // returns 0744

更改权限(chmod)

要更改文件的权限。

File::chmod('/path/somefile','www-data');

获取文件所有者

$owner = File::owner('/path/somefile'); // returns root

更改所有权(chown)

要更改文件的所有权。

File::chown('/path/somefile','www-data');

获取组

要获取文件所属的组。

$group = File::group('/path/somefile'); // returns root

更改组(chgrp)

要更改文件所属的组。

File::chgrp('/path/somefile','www-data');

文件夹

文件夹实用工具帮助您在文件系统上处理文件夹。

要使用文件夹实用工具,请将以下内容添加到文件顶部。

use Origin\Filesystem\Folder

创建

要创建文件夹

Folder::create('/var/www/new_folder');

要递归创建文件夹

Folder::create('/var/www/level1/level2/level3/new_folder',['recursive'=>true]);

要设置新创建文件夹的权限

Folder::create('/var/www/new_folder',['mode'=>0755]);

删除

要删除文件夹

Folder::delete('/var/www/bye-bye')

要递归删除文件夹,包括所有文件和子目录。

Folder::delete('/var/www/docs',['recursive'=>true])

存在

要检查目录是否存在

$result = Folder::exists('/path/somedirectory');

列表

自 2.0 版本发布以来,版本号 26.09.20,列表结果不同,路径现在包括文件名。

要列出目录的所有内容

$results = Folder::list('/path/somedirectory');

这将返回一个包含 FileObjects 数组的数组

[
    Origin\Filesystem\FileObject Object
    (
        'name' => 'foo.txt',
        'directory' => '/var/www/my_directory',
        'path' =>  '/var/www/my_directory/foo.txt',
        'extension' => 'txt',
        'timestamp' => 14324234,
        'size' => 1234,
        'type' => 'file'
    )
]

当将 FileObject 转换为字符串时,它将成为路径,例如 /var/www/my_directory/foo.txt

foreach(Folder::list('/data') as $file){
    $contents = file_get_contents($file->path); // or (string) $file
}

您还可以递归地获取列表

$results = Folder::list('/path/somedirectory',['recursive'=>true]);

要包括结果中的目录

$results = Folder::list('/path/somedirectory',['directories'=>true]);

复制

要复制目录

Folder::copy('/path/somedir','somedir-backup');
Folder::copy('/path/somedir','/another_path/somedir');

重命名

要重命名目录

Folder::rename('/path/somedir','new_name');

移动

要移动目录

Folder::move('/path/somedir','/another_path/somedir');

权限

获取权限

要获取目录的权限。

$permissions = Folder::perms('/path/somedir'); // returns 0744

更改权限(chmod)

要更改目录的权限。

Folder::chmod('/path/somedir','www-data');
Folder::chmod('/path/somedir','www-data',['recursive'=>true]); // recursive

获取目录所有者

$owner = Folder::owner('/path/somedir'); // returns root

更改所有权(chown)

要更改目录的所有权。

Folder::chown('/path/somedir','www-data');
Folder::chown('/path/somedir','www-data',['recursive'=>true]);

获取组

要获取目录所属的组。

$group = Folder::group('/path/somedir'); // returns root

更改组(chgrp)

要更改文件夹所属的组。

Folder::chgrp('/path/somedir','www-data');
Folder::chgrp('/path/somedir','www-data',['recursive'=>true]);