procedure TForm1.btnCreateClick(Sender: TObject);
begin
CreateDirectory(PChar(ExtractFilePath(ParamStr(0))+'Test'),nil);
end;
procedure TForm1.btnDeleteClick(Sender: TObject);
var
T:TSHFileOpStruct;
P:String;
begin
P:=ExtractFilePath(ParamStr(0))+'Test';
with T do
begin
Wnd:=0;
wFunc:=FO_DELETE;
pFrom:=PChar(P);
pTo:=nil;
fFlags:=FOF_ALLOWUNDO+FOF_NOERRORUI;
hNameMappings:=nil;
lpszProgressTitle:='正在删除文件夹';
fAnyOperationsAborted:=False;
end;
SHFileOperation(T);
RemoveDirectory(PChar(ExtractFilePath(ParamStr(0))+'Test'));
end;
procedure TForm1.Button1Click(Sender: TObject);
var
APath: AnsiString;
lpFileOp: TSHFileOpStruct;
begin
APath:='g:/123';//指定目录
with lpFileOp do
begin
wnd:=self.handle;
wFunc:=FO_Delete;
pFrom:=PChar(APath);
pTo:=nil;
fFlags:=FOF_AllowUndo;
hNameMappings:=nil;
lpszProgressTitle:=nil;
fAnyOperationsAborted:=true;
end;
if SHFileOperation(lpFileOp)=0 then
ShowMessage('删除成功!')
else
ShowMessage('删除失败!');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
// DoRemoveDir('g:/123')
//ToRecycle(0, 'G:/123')
Deletedirectory('g:/123');
end;
function TForm1.Deletedirectory(apath: string): boolean;
var lpFileOp: TSHFileOpstruct;
begin
result := false;
if DirectoryExists(apath) then
begin
with lpFileOp do
begin
Wnd := Self.Handle;
wFunc := FO_DELETE;
pFrom := pchar(APath + #0#0);
pTo := nil;
fFlags := FOF_NOCONFIRMATION;
hNameMappings := nil;
lpszProgressTitle := nil;
fAnyOperationsAborted := false;
end;
if (SHFileOperation(lpFileOp) = 0) and (lpFileOp.fAnyOperationsAborted= false) then
if (not DirectoryExists(apath)) then
result := true;
end;
end;