我想使用*.tmp
删除具有特定掩码的所有文件,例如*.log
或SHFileOperation()
。
所以,我认为有些事情是这样的:
Function SpeedDelFile(const fromDir, Mask: string): Boolean;
var
FosFile: TSHFileOpStruct;
begin
ZeroMemory(@FosFile, SizeOf(FosFile));
with FosFile do
begin
wFunction := FO_DELETE;
fFlags := FOF_NOCONFIRMATION or FOF_NO_CONNECTED_ELEMENTS or
FOF_NOERRORUI;
pFrom := PChar(fromDir+'\'+Mask + #0);
end;
Result := (0 = ShFileOperation(FosFile));
end;
使用:
SpeedDelFile('C:\Users\%HomePath%\AppData\Local\Temp', '*.log');
C:\Users\%HomePath%\AppData\Local\Temp\
中的文件已被删除,但不会排除C:\Users\%HomePath%\AppData\Local\Temp\
中子文件夹中的文件。
我不想删除C:\Users\%HomePath%\AppData\Local\Temp\
内的任何子文件夹。
我知道FindFirst()
/ FindNext()
,但这些功能非常缓慢,可怕,但不符合我的期望。
我知道如何调整上面的代码吗?