文件系统组件
文件系统组件¶
文件系统组件为文件系统提供基本实用程序。
安装¶
1 |
$Composer需要Symfonyob娱乐下载 /文件系统
|
笔记
如果在Symfony应用程序之外安装此组件,则必须要求ob娱乐下载供应商/ autoload.php.
代码中的文件以启用Composer提供的类自动加载机制。读本文更多细节。
用法¶
这ob娱乐下载symfony \ component \ filesystem \ filesystem
class是文件系统操作的唯一端点:
用ob娱乐下载symfony \ component \ filesystem \异常\ ioExcepionInterface;用ob娱乐下载symfony \ component \ filesystem \ filesystem;$文件系统=新的文件系统();尝试{$文件系统- >MKDIR.(sys_get_temp_dir.()。'/'。random_int.(0.那1000));}抓住(IoExcepionInterface.$例外){回声“在创建目录时发生错误”。$例外- >getpath.();}
MKDIR.
¶
mkdir()
递归创建目录。在POSIX文件系统上,目录是使用默认模式值创建的0777.。您可以使用第二个参数来设置自己的模式:
$文件系统- >MKDIR.('/ tmp / photos'那0700.);
笔记
您可以传递数组或任何数组遍历
对象作为第一个参数。
笔记
此功能忽略已存在的目录。
存在
¶
存在()
检查是否存在一个或多个文件或目录并返回错误的
如果其中任何一个缺少:
//如果存在此绝对目录,则返回true$文件系统- >存在('/ tmp / photos');//如果存在rabbit.jpg并且瓶子.png不存在,返回false//非绝对路径相对于存储运行PHP脚本的目录$文件系统- >存在(['rabbit.jpg'那'bottle.png']);
笔记
您可以传递数组或任何数组遍历
对象作为第一个参数。
复制
¶
复制()
制作单个文件的副本(使用镜子()
复制目录)。如果目标已存在,则才会在源修改日期延迟而不是目标时复制该文件。第三个布尔参数可以覆盖此行为:
仅适用于image.jpg后修改了image-ICC$文件系统- >复制('image-icc.jpg'那'image.jpg');//映像.jpg将被覆盖$文件系统- >复制('image-icc.jpg'那'image.jpg'那真的);
触碰
¶
触碰()
为文件设置访问和修改时间。默认使用当前时间。您可以使用第二个参数设置自己。第三个参数是访问时间:
//将修改时间设置为当前时间戳$文件系统- >触碰('file.txt');//将来设置修改时间10秒$文件系统- >触碰('file.txt'那时间()+10.);//在过去设置访问时间10秒$文件系统- >触碰('file.txt'那时间(),时间()-10.);
笔记
您可以传递数组或任何数组遍历
对象作为第一个参数。
ch
¶
chown()
更改文件的所有者。第三个参数是一个布尔递归选项:
//将lolcat视频的所有者设置为www-data$文件系统- >ch('lolcat.mp4'那'www-data');//递归更改视频目录的所有者$文件系统- >ch('/视频'那'www-data'那真的);
笔记
您可以传递数组或任何数组遍历
对象作为第一个参数。
CHGRP.
¶
chgrp()
更改文件组。第三个参数是一个布尔递归选项:
//将lolcat视频组设置为nginx$文件系统- >CHGRP.('lolcat.mp4'那'nginx');//递归更改视频目录的组$文件系统- >CHGRP.('/视频'那'nginx'那真的);
笔记
您可以传递数组或任何数组遍历
对象作为第一个参数。
chmod.
¶
chmod()
更改文件的模式或权限。第四个论点是一个布尔递归选项:
//将视频模式设置为0600$文件系统- >chmod.('video.ogg'那0600.);//递归更改SRC目录的模式$文件系统- >chmod.('src'那0700.那0000.那真的);
笔记
您可以传递数组或任何数组遍历
对象作为第一个参数。
去掉
¶
去掉()
删除文件,目录和符号链接:
$文件系统- >去掉(['symlink'那'/ path / to / directory'那'活动日志']);
笔记
您可以传递数组或任何数组遍历
对象作为第一个参数。
改名
¶
改名()
更改单个文件或目录的名称:
//重命名文件$文件系统- >改名('/tmp/processed_video.ogg'那'/path/to/store/video_647.ogg');//重命名目录$文件系统- >改名('/ tmp / files'那'/ path / to / store / files');//如果目标已存在,则可以使用第三个布尔参数来覆盖。$文件系统- >改名('/tmp/processed_video2.ogg'那'/path/to/store/video_647.ogg'那真的);
Symlink.
¶
Symlink()
从目标到目标创建符号链接。如果文件系统不支持符号链接,则提供第三个布尔参数:
//创建一个符号链接$文件系统- >Symlink.('/ path / to / source'那'/路径/到/目的地');//根据文件系统重复源目录//不支持符号链接$文件系统- >Symlink.('/ path / to / source'那'/路径/到/目的地'那真的);
readlink.
¶
readlink()
阅读链接目标。
PHP的readlink.
函数返回符号链接的目标。但是,它的行为在Windows和Unix下完全不同。在Windows系统上,readlink()
递归地解决了一个链接的儿童链接,直到找到最终目标。关于基于UNIX的系统readlink()
只能解决下一个链接。
这readlink()
文件系统组件提供的方法始终以相同的方式行事:
//返回链路的下一个直接目标而不考虑目标的存在$文件系统- >readlink.('/ path / to / link');//返回其绝对完全解决的目标的最终版本(如果有嵌套链接,则会解决它们)$文件系统- >readlink.('/ path / to / link'那真的);
其行为如下:
上市功能readlink.($途径那$ canonicalize.=错误的)
-
-
什么时候
$ canonicalize.
是错误的
: -
- 如果
$途径
不存在或不是链接,返回空值
。 - 如果
$途径
是一个链接,它返回链接的下一个直接目标而不考虑目标的存在。
- 如果
-
什么时候
-
-
什么时候
$ canonicalize.
是真的
: -
- 如果
$途径
不存在,它返回null。 - 如果
$途径
存在,它返回其绝对完全解决的最终版本。
- 如果
-
什么时候
makepathrelive.
¶
MakePathRelative()
占用两个绝对路径,并将第二路径返回到第一个路径:
//返回'../'$文件系统- >makepathrelive.('/ var / lob娱乐下载ib / symfony / src / symfony /'那'/ var / lob娱乐下载ib / symfony / src / symfony / component');//返回“视频/”$文件系统- >makepathrelive.('/ tmp / videos'那'/ tmp');
镜子
¶
镜子()
将源目录的所有内容复制到目标中(使用复制()
复制单个文件的方法):
$文件系统- >镜子('/ path / to / source'那'/ path / to / target');
isabsolutepath.
¶
isabsolutepath()
回报真的
如果给定的路径是绝对的,错误的
除此以外:
//返回真实$文件系统- >isabsolutepath.('/ tmp');//返回真实$文件系统- >isabsolutepath.('C:\\ Windows');//返回false.$文件系统- >isabsolutepath.('tmp');//返回false.$文件系统- >isabsolutepath.('../dir');
温泉
¶
Tempnam()
使用唯一的文件名创建临时文件,并返回其路径,或抛出异常失败:
//返回一个路径:/ tmp / prefix_wyjgtf$文件系统- >温泉('/ tmp'那'字首_');//返回一个路径:/tmp/prefix_wyjgtf.png$文件系统- >温泉('/ tmp'那'字首_'那'.png');
5.1版中的新增功能:设置后缀的选项Tempnam()
在Symfony 5.1中介绍。ob娱乐下载
dumpfile.
¶
dumpfile()
将给定内容保存到文件中。它以原子方式执行此操作:它首先写入临时文件,然后在完成后将其移动到新文件位置。这意味着用户将始终看到完整的旧文件或完整的新文件(但从未成为部分写入的文件):
$文件系统- >dumpfile.('file.txt'那'你好,世界');
这file.txt.
文件包含你好世界
现在。
Appendtofile.
¶
appendtofile()
在某些文件末尾添加新内容:
$文件系统- >Appendtofile.('logs.txt'那'电子邮件发送至[电子邮件受保护]');
如果文件或其包含的目录不存在,则此方法在附加内容之前会创建它们。
误差处理¶
每当发生错误时,一个例外实施ob娱乐下载symfony \ component \ filesystem \异常\ ExceptionInterface
或者ob娱乐下载symfony \ component \ filesystem \异常\ ioExcepionInterface
被抛出。
笔记
一个ob娱乐下载symfony \ component \ filesystem \异常\ ioException
如果目录创建失败,则抛出。
这项工作包括代码样本,是在a下获得的许可Creative Commons by-SA 3.0执照。