Delphi中如何删除当前目录下的一个指定的文件夹 5
在Delphi里,怎样写这样一段代码。。获取当前此程序的目录,并彻底删除目录中的一个指定名字的文件夹(文件夹里有文件)。就这个,怎样写啊?如果要删除目录中的一个文件夹里的...
在Delphi里,怎样写这样一段代码。。
获取当前此程序的目录,并彻底删除目录中的一个指定名字的文件夹(文件夹里有文件)。
就这个,怎样写啊?
如果要删除目录中的一个文件夹里的其中3个文件又该怎么写啊?
我是菜鸟,别笑话我哈! 展开
获取当前此程序的目录,并彻底删除目录中的一个指定名字的文件夹(文件夹里有文件)。
就这个,怎样写啊?
如果要删除目录中的一个文件夹里的其中3个文件又该怎么写啊?
我是菜鸟,别笑话我哈! 展开
2个回答
展开全部
o(∩_∩)o...,同上就对了
要是不想删除到回收站了,就用下面的代码:
qTempFolder传路径,似乎要引用ShellAPI单元吧(忘记了)
function DeleteTempFolder(qTempFolder: PChar): Integer;
var
SR: TSearchRec;
FR: Integer;
begin
Result := 0;
if not DirectoryExists(qTempFolder) then
Exit;
try
if Copy(qTempFolder, Length(qTempFolder), 1) <> '\' then
qTempFolder := PChar(qTempFolder + '\');
FR := FindFirst(qTempFolder + '*.*', FaAnyfile, SR);
while FR = 0 do
begin
if ((SR.Attr and FaDirectory) = FaDirectory) and (SR.Name <> '.') and
(SR.Name <> '..') then
if DeleteTempFolder(PChar(qTempFolder + SR.Name)) = -1 then
Break;
if ((SR.Attr and FaDirectory <> FaDirectory) and (SR.Attr and FaVolumeID
<> FaVolumeID)) then
begin
SysUtils.FileSetAttr(qTempFolder + SR.Name,
SysUtils.FileGetAttr(qTempFolder + SR.Name) and (not
SysUtils.faReadOnly)); //取消文件的只读属性
if not DeleteFile(PChar(qTempFolder + SR.Name)) then
Break;
end;
FR := FindNext(SR);
end;
SysUtils.FindClose(SR);
RemoveDirectory(qTempFolder);
except
Result := -1;
end;
end;
要是不想删除到回收站了,就用下面的代码:
qTempFolder传路径,似乎要引用ShellAPI单元吧(忘记了)
function DeleteTempFolder(qTempFolder: PChar): Integer;
var
SR: TSearchRec;
FR: Integer;
begin
Result := 0;
if not DirectoryExists(qTempFolder) then
Exit;
try
if Copy(qTempFolder, Length(qTempFolder), 1) <> '\' then
qTempFolder := PChar(qTempFolder + '\');
FR := FindFirst(qTempFolder + '*.*', FaAnyfile, SR);
while FR = 0 do
begin
if ((SR.Attr and FaDirectory) = FaDirectory) and (SR.Name <> '.') and
(SR.Name <> '..') then
if DeleteTempFolder(PChar(qTempFolder + SR.Name)) = -1 then
Break;
if ((SR.Attr and FaDirectory <> FaDirectory) and (SR.Attr and FaVolumeID
<> FaVolumeID)) then
begin
SysUtils.FileSetAttr(qTempFolder + SR.Name,
SysUtils.FileGetAttr(qTempFolder + SR.Name) and (not
SysUtils.faReadOnly)); //取消文件的只读属性
if not DeleteFile(PChar(qTempFolder + SR.Name)) then
Break;
end;
FR := FindNext(SR);
end;
SysUtils.FindClose(SR);
RemoveDirectory(qTempFolder);
except
Result := -1;
end;
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
多给点分啊,delpath传你要删除的文件夹路径,子文件夹会一并删除。
procedure Tfrm_PaperIn.DelTEMPFiles(delpath: String);
Var
T:TSHFileOpStruct;
P:String;
begin
P:= delpath;//要删除的任意目录名
With T do
Begin
Wnd:= 0;
wFunc:= FO_DELETE;
pFrom:= Pchar(P);
pTo:= nil;
fFlags:=FOF_ALLOWUNDO+FOF_NOCONFIRMATION+FOF_NOERRORUI;//标志表明允许恢复,无须确认并不显示出错信息
hNameMappings:= nil;
fAnyOperationsAborted:= False;
End;
SHFileOperation(T);
end;
procedure Tfrm_PaperIn.DelTEMPFiles(delpath: String);
Var
T:TSHFileOpStruct;
P:String;
begin
P:= delpath;//要删除的任意目录名
With T do
Begin
Wnd:= 0;
wFunc:= FO_DELETE;
pFrom:= Pchar(P);
pTo:= nil;
fFlags:=FOF_ALLOWUNDO+FOF_NOCONFIRMATION+FOF_NOERRORUI;//标志表明允许恢复,无须确认并不显示出错信息
hNameMappings:= nil;
fAnyOperationsAborted:= False;
End;
SHFileOperation(T);
end;
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询