var
T: TSHFileOpStruct;
begin
T.Wnd:=0;
T.wFunc:=FO_DELETE;
T.fFlags := Fof_NoConfirmation;
T.pFrom:=PChar(ShellListView1.selectedfolder.PathName);
if FileExists(ShellListView1.SelectedFolder.PathName) then
DeleteFile(ShellListView1.selectedfolder.PathName)
else
SHFileOperation(T);
end;上面的代码,删除文件时没问题,删除文件夹时报错,是哪不对?
T: TSHFileOpStruct;
begin
T.Wnd:=0;
T.wFunc:=FO_DELETE;
T.fFlags := Fof_NoConfirmation;
T.pFrom:=PChar(ShellListView1.selectedfolder.PathName);
if FileExists(ShellListView1.SelectedFolder.PathName) then
DeleteFile(ShellListView1.selectedfolder.PathName)
else
SHFileOperation(T);
end;上面的代码,删除文件时没问题,删除文件夹时报错,是哪不对?
解决方案 »
- 关于DdeClientConv控件的问题
- 一个数据集组件的state属性问题--初学者问
- 用DBGrid显示数据的时候,怎么才能固定列宽?
- 点击DBGRID的TITLE按钮,分别按’升序‘和’降序‘排列数据,降序的怎么做?解决了一定给分!!!
- DELPHI中SOCKET组件在设为阻塞状态下,线程如何使用读取数据(急,在线等待)
- 有关文本文件和字符串操作问题
- 如何把分类汇总结果存入到一个已存在的数据表中?急
- erp是什么啊
- 紧急 ,,,,,,如何在delphi中检查是否其他程序运行。紧急 ,,,,,,
- 请教:在程序进行长时间的数据库操作时,让鼠标还处于活动状态?
- 多语言问题
- RAD studio 2010 修复包,定制自己的2010精简版
T.fFlags := Fof_NoConfirmation;
这句改为:
T.fFlags := FOF_NOCONFIRMATION+FOF_NOCONFIRMMKDIR+FOF_NOERRORUI;于是,报错消失。不知道你可否结贴?
unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, ShellApi;type TForm1 = class(TForm) btnCreate: TButton; btnDelete: TButton; procedure btnCreateClick(Sender: TObject); procedure btnDeleteClick(Sender: TObject);private { Private declarations }public { Public declarations }end;var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.btnCreateClick(Sender: TObject); beginCreateDirectory(PChar(ExtractFilePath(ParamStr(0))+’Test’),nil); end; procedure TForm1.btnDeleteClick(Sender: TObject); varT:TSHFileOpStruct;P:String; beginP:=ExtractFilePath(ParamStr(0))+’Test’;with T dobegin 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;end.
FOF_CONFIRMMOUSE 0x0002
FOF_SILENT 0x00044 // 不显示一个进度对话框
FOF_RENAMEONCOLLISION 0x0008 // 碰到有抵触的名字时,自动分配前缀
FOF_NOCONFIRMATION 0x0010 // 不对用户显示提示
FOF_WANTMAPPINGHANDLE 0x0020 // 填充 hNameMappings 字段,必须使用 SHFreeNameMappings 释放
FOF_ALLOWUNDO 0x0040 // 允许撤销
FOF_FILESONLY 0x0080 // 使用 *.* 时, 只对文件操作
FOF_SIMPLEPROGRESS 0x0100 // 简单进度条,意味者不显示文件名。
FOF_NOCONFIRMMKDIR 0x0200 // 建新目录时不需要用户确定
FOF_NOERRORUI 0x0400 // 不显示出错用户界面
FOF_NOCOPYSECURITYATTRIBS 0x0800 // 不复制 NT 文件的安全属性
FOF_NORECURSION 0x1000 // 不递归目录
Saferecyclebin
---------------------------
Access violation at address 7C84A91F in module 'kernel32.dll'. Read of address 000377E3.
---------------------------
确定
---------------------------