如何有程序中删除某一目录下s*.*的所有文件(30分)

  • 主题发起人 主题发起人 T18sc
  • 开始时间 开始时间
T

T18sc

Unregistered / Unconfirmed
GUEST, unregistred user!
如何有[red]程序中[/red]删除某一目录下某一字母开头的所有文件,比如s*.*的所有文件
 
procedure TForm1.Button1Click(Sender: TObject);
var ;SearchRec: TSearchRec;
begin
;if FindFirst('S*.*', faAnyFile, SearchRec)=0 then
;begin
; deletefile(SearchRec.name);
; while findnext(SearchRec)=0 do deletefile(SearchRec.name);
; findclose(SearchRec);
;end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
int:integer;
SRec: TSearchRec;
begin
int:=findfirst(GetCurrentDir+'/*.*',faAnyFile,SRec);
while int<>18 do
; ;begin
; ;int:=FindNext(SRec);
; ;if uppercase(copy(srec.name,1,1))='S' then deletefile(getcurrentdir+'/'+srec.name);
; ;end;
end;
 
实在不行用DELPHI编一个BAT文件一切搞定!
 
代码:
uses shellapi;
;然后:


代码:
procedure TForm1.Button1Click(Sender: TObject);
var
 ;  ;  ;  ; fo:TSHFILEOPSTRUCT;
begin
fo.Wnd:=form1.Handle;
fo.wFunc:=FO_DELETE;
fo.pFrom:='d:/tmp/s*.*';
fFlags:=FOF_ALLOWUNDO;
SHFileOperation(fo);
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
; ; ; ; assignfile(f,'./delself.bat');
; ; ; ; ;rewrite(f);
; ; ; ; ;writeln(f,'@echo off');
; ; ; ; ;writeln(f,'del ' + extractfilepath(application.ExeName)+'s.* /q/f');Writeln(f,'del ../delself.bat');
; ; ; ; ;closefile(f);
; ; ; ; ;winexec('./delself.bat', SW_HIDE);
end;
 
TO loxtln:
我也是这样用的,不过执行之后一个文件也没删除,不知道问题出在哪?
 
if FindFirst('S*.*', faAnyFile, SearchRec)=0 then
'S*.*' ;改为绝对路径,如 'd:/S*.*',不行的话,
那是不可能的。真是这样,看看你的代码。
 
我用单步执行试了,能找到文件,我想问题出在DeleteFile上,是不是DeleteFile需要的是
绝对路径?
 
谢谢大家。我只试了loxtln的方法,能行。
 
多人接受答案了。
 
后退
顶部