有那些函数可以删除文件夹?

dianhui 2004-06-14 02:38:43
请高手们多多指教!
想删除文件夹时我用到了这个函数DeleteFile(p) 其中P为:OpenDialog1.FileName
可是我试了好多次都没办法删除文件夹。文件到是可以删除得!比如TEXT文本文件!
请问有什么办法可以做到删除文件夹?
请高手们指教了!
...全文
199 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jmf2000 2004-06-14
  • 打赏
  • 举报
回复
呵呵,学习到东西了。感谢
flyhigh 2004-06-14
  • 打赏
  • 举报
回复
SHFileOperation
各种功能应有尽有。
creativepeter 2004-06-14
  • 打赏
  • 举报
回复
我不知道你为什么不结帖,其实hongqi162(失踪的月亮)的办法是可以的。
不过我要补充一句,如果你在调试时发现系统报错:比如未定义的标识符,那是因为你没有添加必要的系统引用单元文件,也就是我们常说的库文件。
上面的由Delphi封装的API函数定义在ShellAPI.pas库文件中,该文件在%Borland%\Delphi7\Source\Rtl\Win目录下。
假定你没有使用过API函数,那么请在你的程序的单元文件的interface区域的uses下面添加如下字符串:ShellAPI。
然后在窗体类中添加hongqi162(失踪的月亮)给你的函数的声明。
最后在程序的单元文件的implementation区域将hongqi162(失踪的月亮)给你的函数稍加修改,只要该这么小小的一下下:function DeleteFolder(folder:string; Recycle:boolean):Integer;=======>function TForm_Name.DeleteFolder(folder:string;Recycle:boolean):Integer;函数主体不变。
编译运行试试看。
如果你使用过API函数,本文就是一个学习的例子,你可以查阅相关主题以获得更多的信息。
jmf2000 2004-06-14
  • 打赏
  • 举报
回复
我的办法是用API去做,从外面开始看文件夹里面还有没有文件或者文件夹,然后递归。一会把代码贴出来。
hongqi162 2004-06-14
  • 打赏
  • 举报
回复
function DeleteFolder(folder:string; Recycle:boolean):Integer;
Var SHFileOpStruct:TSHFileOpStruct;
begin
folder:=folder+#0#0;
With SHFileOpStruct do
begin
Wnd := Application.Handle;
wFunc := FO_DELETE;
pFrom := pchar(Folder);
pTo:= nil;
fFlags := FOF_NOCONFIRMATION + FOF_SILENT + FOF_NOERRORUI;
if Recycle then fFlags:=fFlags + FOF_ALLOWUNDO
end;
Result:=SHFileOperation(SHFileOpStruct);
End;
wzs_wzs123 2004-06-14
  • 打赏
  • 举报
回复
RemoveDir()
江宁侯哥 2004-06-14
  • 打赏
  • 举报
回复
function DelDirectory(const Source:string): boolean;

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;

5,939

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧