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

问题描述 投票:0回答:4

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

这是我试过的;

unlink("../httpdocs/Temp/*.jpg);
perl cgi cgi-bin
4个回答
12
投票

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

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

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

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


5
投票

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

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

2
投票

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

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

0
投票

我建议在while循环(标量上下文)中操作,因为在列表上下文中使用glob可以提高内存消耗,具体取决于dentries的数量。

while( my $dentry = <../httpdocs/Temp/*.jpg> ) {
    unlink $dentry or die( "Couldn't delete the $dentry file: $!" );
}
© www.soinside.com 2019 - 2024. All rights reserved.