场景:将一个文件夹中的500个文件分别复制到新建的500个文件夹中
代码展示
/**
* 生成500个文件夹
*/
public function mkdir()
{
for ($i = 1; $i < 501; $i++) {
if ($i < 10) {
$i = '00' . $i;
} elseif ($i > 9 && $i < 100) {
$i = '0' . $i;
}
File::makeDirectory('C:\Users\cain\Desktop\news\\' . $i, 777);
}
}
/**
* 复制操作
*/
public function copyFile()
{
$arr = [];
$resource = opendir('C:\Users\cain\Desktop\rename\new');
while ($row=readdir($resource)){
if ($row == "." || $row == ".."){
continue;
}
array_push($arr,$row);
}
closedir($resource);
//本来想用File门面的files来获取文件名,但是不知道什么原因无法获取,因此就使用了原始的php代码来遍历获取
$filename = File::directories('C:\Users\cain\Desktop\news');
for ($i=1;$i<501;$i++){
$oldname = 'C:\Users\cain\Desktop\rename\new\/'.$arr[$i-1];
$newpath = $filename[$i-1].'/';
copy($oldname,$newpath.$arr[$i-1]); // 注意地方:复制到新文件夹后一定要带上文件名,如果不更改文件名就写上原来的文件名,要是想更改文件名则可以直接文件下后带上新文件名
}
}
注意,copy()函数一定要带文件名,否则会报错,要引入门面哦:
use Illuminate\Support\Facades\File;
效果展示: