Dir
<br/>
>i 本文档的最新修订日期是:
> **2023-09-13**
# Dir
## 模块简述
获取目录或文件的属性、状态;复制、删除目录或文件。
## :: state()方法
### 语法
**<font color="#0099ff"><font color="#ff6600">Dir</font> :: <font color="#ff6600">state</font> ( <kbd>传参数组</kbd> )</font>**
### 说明
获取文件夹或文件的可读性、可写性、可执行性。
此方法 <font color="#c7254e">`支持`</font> 中文参数名。
此方法 <font color="#c7254e">`支持`</font> 参数简写。
### 参数
* **<font color="#ff6600">`path(路径)`</font>** <font color="#0099ff">`(String|Array)`</font> <font color="#BBBBBB">`<必须>`</font> <font color="#19c58c">`可简写`</font>:
需要获取属性的文件夹或文件的路径。
当传入的值为字符串时,则获取对应的文件或文件夹的信息。
亦可以传入多个路径组成的数组,其中数组的键无需定义,值为需要操作的路径。
路径是相对于 <font color="#c7254e">`应用根目录`</font> (即lib、source文件夹所在的目录,通常是站点根目录)的路径,以 <font color="#c7254e">`/`</font> 开始。
### 返回
<font color="#0099ff">`(Array)`</font> 类型。
在返回的第一维数组中,键为文件夹或文件的路径,值为数组;在第二维数组中,有以下3个元素:
1. 键为 <font color="#c7254e">`R`</font> ,代表是否可读,当值为 <font color="#c7254e">`Y`</font> 时可读,当值为 <font color="#c7254e">`N`</font> 时不可读;
2. 键为 <font color="#c7254e">`W`</font> ,代表是否可写,当值为 <font color="#c7254e">`Y`</font> 时可写,当值为 <font color="#c7254e">`N`</font> 时不可写;
3. 键为 <font color="#c7254e">`Ex`</font> ,代表是否可执行,当值为 <font color="#c7254e">`Y`</font> 时可执行,当值为 <font color="#c7254e">`N`</font> 时不可执行。 <font color="#c7254e">`文件夹没有此属性`</font> 。
### 示例
检测Api模块配置文件Api.php和它的父目录/config/core是否可读写:
```php
$Config=array(
'path'=>array(
'/config/core',
'/config/core/Api.php'
)
)
$Result=Dir::State($Config);
print_r($Result);
```
执行后的输出为:
```php
Array(
['/config/core']=>Array(
['R']=>'Y',
['W']=>'Y'
),
['/config/core/Api.php']=>Array(
['R']=>'Y',
['W']=>'Y',
['Ex']=>'Y'
)
)
```
>w 本方法不会遍历目录,请指定 <font color="#c7254e">`所有`</font> 需要获取状态的文件夹或文件。
## :: size()方法
### 语法
**<font color="#0099ff"><font color="#ff6600">Dir</font> :: <font color="#ff6600">size</font> ( <kbd>传参数组</kbd> )</font>**
### 说明
获取指定目录所包含的所有文件的体积之和。
此方法 <font color="#c7254e">`支持`</font> 中文参数名。
此方法 <font color="#c7254e">`支持`</font> 参数简写。
### 参数
* **<font color="#ff6600">`path(路径)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`<必须>`</font> <font color="#19c58c">`可简写`</font>:
指定备份的文件存储到何处,值为相对于 <font color="#c7254e">`应用根目录`</font>(即lib、source文件夹所在的目录,通常是站点根目录)的路径,以 <font color="#c7254e">`/`</font> 开始。
* **<font color="#ff6600">`unit(单位)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`NULL`</font>:
指定返回体积的计算单位,可传入 <font color="#c7254e">`KB`</font> / <font color="#c7254e">`MB`</font> / <font color="#c7254e">`GB`</font> 。当未传入本参数时,返回体积的计算单位为 <font color="#c7254e">`B`</font>(字节)。
### 返回
<font color="#0099ff">`(String)`</font> 类型。
根据计算单位(如果已经指定)计算得出的体积大小。
## :: delete()方法
### 语法
**<font color="#0099ff"><font color="#ff6600">Dir</font> :: <font color="#ff6600">delete</font> ( <kbd>传参数组</kbd> )</font>**
### 说明
删除指定的目录。
此方法 <font color="#c7254e">`支持`</font> 中文参数名。
此方法 <font color="#c7254e">`支持`</font> 参数简写。
### 参数
* **<font color="#ff6600">`path(路径)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`<必须>`</font> <font color="#19c58c">`可简写`</font>:
指定需要操作的文件夹的路径,即相对于 <font color="#c7254e">`应用根目录`</font>(即lib、source文件夹所在的目录,通常是站点根目录)的路径,以 <font color="#c7254e">`/`</font> 开始。
### 返回
无。
## :: copy()方法
### 语法
**<font color="#0099ff"><font color="#ff6600">Dir</font> :: <font color="#ff6600">delete</font> ( <kbd>传参数组</kbd> )</font>**
### 说明
复制指定目录下的所有文件。
此方法 <font color="#c7254e">`支持`</font> 中文参数名。
### 参数
* **<font color="#ff6600">`from(源路径)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`<必须>`</font>:
指定需要被复制的目录路径,即相对于 <font color="#c7254e">`应用根目录`</font>(即lib、source文件夹所在的目录,通常是站点根目录)的路径,以 <font color="#c7254e">`/`</font> 开始。
* **<font color="#ff6600">`to(目标路径)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`<必须>`</font>:
指定需要将源目录的文件复制到何处,即相对于 <font color="#c7254e">`应用根目录`</font>(即lib、source文件夹所在的目录,通常是站点根目录)的路径,以 <font color="#c7254e">`/`</font> 开始。
如果目标路径不存在,则该路径将被创建。
### 返回
无。