如何使得文件删除前不加询问(50分)

  • 主题发起人 主题发起人 老莫
  • 开始时间 开始时间

老莫

Unregistered / Unconfirmed
GUEST, unregistred user!
var
f:tshfileopstruct;
BEGIN
// F.wnd:=HANDLE;
f.wfunc:=fo_delete;
F.pfrom:='e:/ch12/a.exe';
if shfileoperation(f)<>0 then showmessage('delete失败');
END;
以上这段代码,在将文件delete前会让你确定一次。怎样去掉他。
 
最简单的方法就是写一条delete的SQL语句
 
不是有个:
FOF_NOCONFIRMATION
可以设置吗?
 
加入以下语句:
f.flags := FOF_NOCONFIRMATION;
 
小天: 删除文件也要用SQL语句嘛?

老莫:总看到你在用这个tshfileopstruct,有什么妙处,能不能讲一讲,有分.:-)
 
fFlags

flags可以控制操作的属性,可以是以下常用值.

FOF_ALLOWUNDO 保存undo消息.
FOF_FILESONLY 可以使用通配符.
FOF_NOCONFIRMATION 取消提示信息
FOF_NOCONFIRMMKDIR 创建心目录时,不提示.
FOF_RENAMEONCOLLISION 已存在文件名提示
FOF_SILENT 不显示进程对话框
FOF_SIMPLEPROGRESS 显示进程对话框,但不显示文件名.
 
小天,借用seasky大侠的贴子,现买现买了
/////////////////////////////////
使用Win32 API函数
ShFileOperation; (文件操作函数)

具体用法参见Win32 API

实例如下

Uses ShellAPI
function Win_XCOPY(fFROM,fTO:String):boolean;
var FData : TShFileOpStruct;
begin
Fdata.pFrom := PChar(fFrom); //设立数据源路径和文件、目录名,支持(?, *通配符)
fdata.pTo := PChar(fTo); //设立目标路径
fdata.wFunc := FO_COPY //设立操作方式
//FO_COPY 拷贝操作 相当于 XCOPY
//FO_MOVE 移动操作 相当于 MOVE
//FO_DELETE 删除操作 相当于 DELTREE
FData.Wnd := Application.Handle
fData.lpszProgressTitle := 'Wait'; //设立提示窗标题
fData.fFlags := FOF_ALLOWUNDO OR FOF_NOCONFIRMMKDIR; //设定操作选项
result:=ShFileOperation( FData ) = 0 ;
end;
///////////////////////////////////////////
以上例子是用 ShellApi 的文件管理功能实现的, 运行时与使用
系统的删除文件功能一样
 
多人接受答案了。
 
我会给你分的.
再问一句: 这样实现的方法,在处理大文件时,是不是会自动出现那个
"文件飞来飞去"的AVI窗口?
 
cAKK
f.fFlags:=FOF_SILENT;
就不会有了
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部