2

如何删除仅具有 .jpg 扩展名的临时文件夹中的文件。

这是我尝试过的;

unlink("../httpdocs/Temp/*.jpg);
4

4 回答 4

13

您需要将 glob 函数应用于模式,例如:

unlink glob "../httpdocs/Temp/*.jpg";

这在unlinkglob文档中有介绍。Unlink 本身需要一个要处理的文件列表。glob 函数将引用文档:

在列表上下文中,返回一个(可能为空的)EXPR 值的文件名扩展列表,例如标准的 Unix shell /bin/csh 会做的事情。

于 2012-09-27T20:46:45.340 回答
5

马丁克莱顿给出了一个很好的答案。但是,为失败的文件删除提供适当的警告可能是一个好主意,在这种情况下,循环比使用列表形式更好unlink

unlink or warn "$_: $!" for glob "../httpdocs/Temp/*.jpg"
于 2012-09-27T20:58:03.977 回答
2

你可以试试这个..你需要glob用于删除文件..

chdir "../httpdocs/Temp"
unlink glob "*.jpg"
于 2012-09-27T20:48:12.720 回答
0

我建议在 while 循环(标量上下文)中操作,因为在列表上下文中使用 glob 会增加内存消耗,具体取决于目录的数量。

while( my $dentry = <../httpdocs/Temp/*.jpg> ) {
    unlink $dentry or die( "Couldn't delete the $dentry file: $!" );
}
于 2018-08-30T04:51:14.407 回答