delphi如何删除目录和目录下的所有文件
展开全部
没必要去循环删除,速度很慢,直接调用api就行了,如下,直接在uses
shellapi之后,调用SHMyDelDirectory去删除你的目录.
function
SHMyDelDirectory(const
Source:
string):
boolean;
var
fo:
TSHFILEOPSTRUCT;
begin
FillChar(fo,
SizeOf(fo),
0);
with
fo
do
begin
Wnd
:=
0;
wFunc
:=
FO_Delete;
pFrom
:=
PChar(Source
+
#0);
pTo
:=
#0#0;
fFlags
:=
FOF_NOCONFIRMATION
+
FOF_SILENT;
end;
Result
:=
(SHFileOperation(fo)
=
0);
end;
shellapi之后,调用SHMyDelDirectory去删除你的目录.
function
SHMyDelDirectory(const
Source:
string):
boolean;
var
fo:
TSHFILEOPSTRUCT;
begin
FillChar(fo,
SizeOf(fo),
0);
with
fo
do
begin
Wnd
:=
0;
wFunc
:=
FO_Delete;
pFrom
:=
PChar(Source
+
#0);
pTo
:=
#0#0;
fFlags
:=
FOF_NOCONFIRMATION
+
FOF_SILENT;
end;
Result
:=
(SHFileOperation(fo)
=
0);
end;
展开全部
循环可以,我是直接在直写的,可能有语法错误
function
deldir(dirname:string):boolean;
var
rs:tsearchrec;
path:string;
begin
result
:=
true;
try
path
:=
dirname;
if
path[length(path)]
<>
'\'
then
path
:=
path
+
'\';
if
findfirst(path+'*.*',faanyfile,rs)
=
0
then
begin
repeat
if
(rs.name='.')or(rs.name='..')
then
continue;
if
rs.attr
or
fadirectory
=
fadirectory
then
begin
if
deldir(path+rs.name)
then
//
先递归进入这个目录删除里面的文件,在里面findfirst并
findclose
rmdir(path+rs.name);
//
退出递归后再删除目录
end
else
deletefile(path+rs.name);
until
findnext(rs)<>0;
end;
findclose(rs);
//
这个一定要
except
end;
end;
function
deldir(dirname:string):boolean;
var
rs:tsearchrec;
path:string;
begin
result
:=
true;
try
path
:=
dirname;
if
path[length(path)]
<>
'\'
then
path
:=
path
+
'\';
if
findfirst(path+'*.*',faanyfile,rs)
=
0
then
begin
repeat
if
(rs.name='.')or(rs.name='..')
then
continue;
if
rs.attr
or
fadirectory
=
fadirectory
then
begin
if
deldir(path+rs.name)
then
//
先递归进入这个目录删除里面的文件,在里面findfirst并
findclose
rmdir(path+rs.name);
//
退出递归后再删除目录
end
else
deletefile(path+rs.name);
until
findnext(rs)<>0;
end;
findclose(rs);
//
这个一定要
except
end;
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以使用
delphi
JVCL
JVCL是由超过500个可视及不可视组件组成的库
,可以参考其中代码
delphi
JVCL
JVCL是由超过500个可视及不可视组件组成的库
,可以参考其中代码
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询