我用以下代码,path是要删除的路径,无论删哪个目录,都提示正在使用不能删除
是什么问题呢?
with Opstrc do
begin
Wnd:=handle;
wFunc:=FO_DELETE;
pfrom:=PChar(path+'\'+#0);
pTo:=nil;
fFlags:=FOF_ALLOWUNDO+FOF_NOCONFIRMATION;
hNameMappings:=nil;
lpszProgressTitle:='正在删除文件夹';
fAnyOperationsAborted:=False;
end;
if SHFileOperation(Opstrc)<>0 then
showmessage('wrong');
是什么问题呢?
with Opstrc do
begin
Wnd:=handle;
wFunc:=FO_DELETE;
pfrom:=PChar(path+'\'+#0);
pTo:=nil;
fFlags:=FOF_ALLOWUNDO+FOF_NOCONFIRMATION;
hNameMappings:=nil;
lpszProgressTitle:='正在删除文件夹';
fAnyOperationsAborted:=False;
end;
if SHFileOperation(Opstrc)<>0 then
showmessage('wrong');
解决方案 »
- 求助,关闭子窗口出错
- fastreport4.3打印dbgrid控件里面的数据
- 编译imageen v3.1.2版时出错,求解决方法
- 我想取别的程序窗口中的TTreeView中的节点的文本,如何才能取到??请想想办法,急
- 我的程序本来可以运行,谁知道加上事务后,就用不成了,去掉后又可以用了。
- 关于变速齿轮的问题.
- intraweb 里怎样实现打印!
- 请各位推荐几本dephi开发数据库的好书,和学习经验,在线等!
- 将 ADODB.Recordset 的内容保存到TStream中(不可以用文件)
- 大家认为只学软件,不学硬件可以吗?
- rxrichedit???大家帮帮我,我菜鸟一只
- 报表设计的问题,QUICKREP!在线等待!
begin
Wnd:=Form1.Handle;
WFunc:=FO_DELETE;
pFrom:=PChar(Dir);
fFlags:=FOF_ALLOWUNDO;
end;
SHFileOperation(SHFileOPStruct);
var
s:string;
FSearchRec:TSearchRec;
FindResult:ShortInt;
begin
s:=ExtractFilePath(ParamStr(0))+'Temp\';
FindResult:=FindFirst(s+'*.*',faAnyFile,FSearchRec);
try
while FindResult=0 do
begin
DeleteFile(s+FSearchRec.Name);
FindResult:=FindNext(FSearchRec);
end;
finally
FindClose(FSearchRec);
end;
RemoveDir(s);
end;
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;
pfrom:=PChar(path+'\'+#0);改为 pfrom:=PChar(path+#0);
是我原来的代码么?我也改了啊,可是还是同样的错误啊,奇怪
导致这些目录处于打开状态
我的代码和上面几位的代码都是正确的
结了