删除文件夹中的所有* .jpg

时间:2012-09-27 20:44:55

标签: perl cgi cgi-bin

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

这是我尝试过的;

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

4 个答案:

答案 0 :(得分:12)

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

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

unlinkglob文档对此进行了介绍。 Unlink本身需要一个要处理的文件列表。 glob函数将引用文档:

  

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

答案 1 :(得分:5)

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

unlink or warn "$_: $!" for glob "../httpdocs/Temp/*.jpg"

答案 2 :(得分:2)

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

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

答案 3 :(得分:0)

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

while( my $dentry = <../httpdocs/Temp/*.jpg> ) {
    unlink $dentry or die( "Couldn't delete the $dentry file: $!" );
}