originphp / filesystem
OriginPHP 文件系统
3.1.0
2021-04-13 12:46 UTC
Requires
- php: >=7.3.0
- originphp/defer: ^3.0
Requires (Dev)
- phpstan/phpstan: ^0.12.64
- phpunit/phpunit: ^9.2
README
文件系统包含用于处理文件系统的 File 和 Folder 类。
安装
要安装此软件包
$ 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]);