我想知道unlink()函数是否可以基于某个模式删除多个文件:
<mat-table #table [dataSource]="dataSource">
<ng-container matColumnDef="position">
<mat-header-cell *matHeaderCellDef> No. </mat-header-cell>
<mat-cell *matCellDef="let element">{{element.position}}</mat-cell>
</ng-container>
<ng-container matColumnDef="firstName">
<mat-header-cell *matHeaderCellDef> First Name </mat-header-cell>
<mat-cell *matCellDef="let element">{{element.firstName}}</mat-cell>
</ng-container>
<ng-container matColumnDef="lastName">
<mat-header-cell *matHeaderCellDef> Last Name </mat-header-cell>
<mat-cell *matCellDef="let element">{{element.lastName}}</mat-cell>
</ng-container>
<ng-container matColumnDef="email">
<mat-header-cell *matHeaderCellDef> Email </mat-header-cell>
<mat-cell *matCellDef="let element">{{element.email}}</mat-cell>
</ng-container>
<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
<mat-row *matRowDef="let row; columns: displayedColumns;"></mat-row>
</mat-table>
是否存在不需要glob()和循环就可以删除多个文件(例如.txt文件)的东西?
答案 0 :(得分:0)
documentation说,您只能传递单个文件,就像C的unlink
一样。
答案 1 :(得分:0)
否,但这只有77个字节或69个单字母变量:
array_map('unlink',preg_filter('/^/',$dir,preg_grep($regex,scandir($dir))));
//array_map('unlink',preg_filter('/^/',$d,preg_grep($r,scandir($d))));
未经测试,应该在理论上起作用(也许)。 $dir
是带有斜杠结尾的目录。 $regex
是完整的正则表达式。
不需要glob()和循环
没有glob,没有循环。尽管我确实使用过array_map
,但我没有关闭它。
用于测试:
$dir = 'somefolder/';
//scandir($dir)
$files = ['index.php', 'image.jpg', 'somefile.php'];
//look for files ending in .php
$regex = '/\.php$/';
//strval is useless here but, it shows it works, these are strings so it just returns what we already have
$files = array_map('strval', preg_filter('/^/', $dir, preg_grep($regex, $files)));
//I could have used 'print_r' instead of 'strval' but this is formatted better!
print_r($files);
输出
//these would be sent to unlink
Array
(
[0] => somefolder/index.php
[2] => somefolder/somefile.php
)
干杯!