文件系统组件
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 5.0,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
文件系统组件
Filesystem组件为文件系统提供了基本的实用程序。
安装
1
$编译器需要symfony/文件系统ob娱乐下载
请注意
如果在Symfony应用程序外部安装此组件,则必须要求ob娱乐下载供应商/ autoload.php
文件,以启用Composer提供的类自动加载机制。读这篇文章欲知详情。
使用
的文件系统类是文件系统操作的唯一端点:
1 2 3 4 5 6 7 8 9 10
使用ob娱乐下载\组件\文件系统\异常\IOExceptionInterface;使用ob娱乐下载\组件\文件系统\文件系统;$文件系统=新文件系统();试一试{$文件系统->mkdir (sys_get_temp_dir()。' / '.random_int (0,1000));}抓(IOExceptionInterface$异常) {回声"在创建目录时发生错误".$异常->getPath ();}
mkdir
mkdir ()递归创建目录。在POSIX文件系统上,目录是用默认模式值' 0777 '创建的。你可以使用第二个参数来设置你自己的模式:
1
$文件系统->mkdir (“/ tmp /照片”,0700);
请注意
你可以传递一个数组或任何可否认的对象作为第一个参数。
请注意
这个函数忽略已经存在的目录。
存在
存在()检查是否存在一个或多个文件或目录并返回假
如果有遗漏:
1 2 3 4 5 6
//如果该绝对目录存在,则返回true$文件系统->存在(“/ tmp /照片”);//如果rabbit.jpg存在而bottle.png不存在,则返回false//非绝对路径相对于运行的PHP脚本所在的目录$文件系统->存在([“rabbit.jpg”,“bottle.png”]);
请注意
你可以传递一个数组或任何可否认的对象作为第一个参数。
复制
副本()生成单个文件的副本(使用镜子()复制目录)。如果目标已经存在,则仅当源修改日期晚于目标时才复制文件。这个行为可以被第三个布尔参数覆盖:
1 2 3 4 5
//仅当image.jpg之后修改了image-ICC才有效$文件系统->复制(“image-ICC.jpg”,“image.jpg”);// image.jpg将被覆盖$文件系统->复制(“image-ICC.jpg”,“image.jpg”,真正的);
触摸
联系()设置文件的访问和修改时间。默认使用当前时间。您可以使用第二个参数设置自己的参数。第三个参数是访问时间:
1 2 3 4 5 6
//将修改时间设置为当前时间戳$文件系统->联系(“file.txt”);//设置未来10秒的修改时间$文件系统->联系(“file.txt”, time() +10);//设置过去10秒的访问时间$文件系统->联系(“file.txt”, time(), time() -10);
请注意
你可以传递一个数组或任何可否认的对象作为第一个参数。
乔恩
乔恩()更改文件的所有者。第三个参数是一个布尔递归选项:
1 2 3 4
//设置lolcat视频的所有者为www-data$文件系统->乔恩(“lolcat.mp4”,www - data”的);//递归地改变视频目录的所有者$文件系统->乔恩(/视频的,www - data”的,真正的);
请注意
你可以传递一个数组或任何可否认的对象作为第一个参数。
chgrp
chgrp ()修改文件组。第三个参数是一个布尔递归选项:
1 2 3 4
//设置lolcat视频的组为nginx$文件系统->chgrp (“lolcat.mp4”,nginx的);//递归地改变视频目录的组$文件系统->chgrp (/视频的,nginx的,真正的);
请注意
你可以传递一个数组或任何可否认的对象作为第一个参数。
修改文件权限
chmod ()更改文件的模式或权限。第四个参数是一个布尔递归选项:
1 2 3 4
//设置视频模式为0600$文件系统->chmod (“video.ogg”,0600);//递归地更改SRC目录的mod$文件系统->chmod (“src”,0700,0000,真正的);
请注意
你可以传递一个数组或任何可否认的对象作为第一个参数。
删除
remove ()删除文件,目录和符号链接:
1
$文件系统->删除([符号链接的,“/道路/ /目录”,“activity.log”]);
请注意
你可以传递一个数组或任何可否认的对象作为第一个参数。
重命名
重命名()更改单个文件或目录的名称:
1 2 3 4 5 6
//重命名文件$文件系统->重命名(“/ tmp / processed_video.ogg”,“/道路/ /商店/ video_647.ogg”);//重命名目录$文件系统->重命名(“/ tmp /文件”,/ /存储/文件/路径的);//如果目标已经存在,则可以覆盖第三个布尔参数。$文件系统->重命名(“/ tmp / processed_video2.ogg”,“/道路/ /商店/ video_647.ogg”,真正的);
符号链接
符号链接()创建从目标到目的地的符号链接。如果文件系统不支持符号链接,第三个布尔参数可用:
1 2 3 4 5
//创建符号链接$文件系统->符号链接(“/道路/ /源”,“/道路/ /目的地”);//复制源目录//不支持符号链接$文件系统->符号链接(“/道路/ /源”,“/道路/ /目的地”,真正的);
指向
指向()读取链接目标。
PHP的指向函数返回符号链接的目标。但是,在Windows和Unix下,它的行为是完全不同的。在Windows系统上,指向()
递归解析链接的子链接,直到找到最终目标。基于unix的系统指向()
只解析下一个链接。
的指向()Filesystem组件提供的方法总是以相同的方式运行:
1 2 3 4 5
//返回该链接的下一个直接目标,而不考虑目标是否存在$文件系统->指向“/道路/ /链接”);//返回目标的绝对完全解析的最终版本(如果有嵌套链接,则解析)$文件系统->指向“/道路/ /链接”,真正的);
其行为如下:
1
公共函数指向($路径,$规范化= false)
-
-
当
美元的规范化
是假
: -
- 如果
美元的路径
不存在或不是一个链接,它返回零
. - 如果
美元的路径
是一个链接,它返回该链接的下一个直接目标,而不考虑目标的存在。
- 如果
-
当
-
-
当
美元的规范化
是真正的
: -
- 如果
美元的路径
如果不存在,则返回null。 - 如果
美元的路径
存在时,它返回其绝对完全解析的最终版本。
- 如果
-
当
makePathRelative
makePathRelative ()获取两条绝对路径,并返回从第二个路径到第一个路径的相对路径:
1 2 3 4 5 6 7
//返回'../'$文件系统->makePathRelative (' / var / ob娱乐下载lib / symfony / src / symfony / ',' / var / ob娱乐下载lib / symfony / src / symfony /组件的);//返回'videos/'$文件系统->makePathRelative (“/ tmp /视频”,“/ tmp”)
isAbsolutePath
isAbsolutePath ()返回真正的
如果给定的路径是绝对路径,假
否则:
1 2 3 4 5 6 7 8
//返回true$文件系统->isAbsolutePath (“/ tmp”);//返回true$文件系统->isAbsolutePath (“c: \ Windows \”);//返回false$文件系统->isAbsolutePath (“tmp”);//返回false$文件系统->isAbsolutePath (“. . / dir”);
tempnam
tempnam ()创建一个具有唯一文件名的临时文件,并返回其路径,或在失败时抛出异常:
1 2
//返回路径:/tmp/prefix_wyjgtF$文件系统->tempnam (“/ tmp”,“prefix_”);
dumpFile
dumpFile ()将给定的内容保存到一个文件中。它以原子的方式执行此操作:首先写入临时文件,然后在完成时将其移动到新文件位置。这意味着用户总是会看到完整的旧文件或完整的新文件(但永远不会看到部分写入的文件):
1
$文件系统->dumpFile (“file.txt”,“Hello World”);
的file.txt
文件包含你好世界
现在。
appendToFile
appendToFile ()在文件末尾添加新内容:
1
$文件系统->appendToFile (“logs.txt”,“邮件发送至user@example.com”);
如果文件或其包含目录不存在,此方法将在追加内容之前创建它们。