像windows的资源管理器一样,我有一个目录树显示目录,然后有一个listview控件显示指定文件夹中的文件,现在我想实现,鼠标选中目录树中的一个文件夹,然后按删除按键可以删除它,鼠标选中listview中的文件,也可以删除选中的文件。

解决方案 »

  1.   


    uses
      ShellApi;删除文件夹'c:\1'
    Var
      T : TSHFileOpStruct;
      P:String;
    begin
      P:= 'c:\1';//目录名
      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);
    end;删除文件
    Var
      T : TSHFileOpStruct;
      P:String;
    begin
      P:= 'c:\1\简历.doc'+#0;//文件名,注意最后要加一个#0
      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);
    end;
      

  2.   

    不是这样的,现在也没有文件和文件夹的路径,也就是我鼠标选中那个文件就能删那个文件,
    怎么把鼠标选中的文件表示成你上述程序中的'c:\1\简历.doc'
      

  3.   

    你鼠标选中那个就是那个吧,替换成代码中的路径就行了
    TreeView1.Selected.Text
      

  4.   

    你这个要在读取文件列表的时候就把对应的文件名称记录到listview的一个item里
    可以设置一个隐藏的字段来记录这个
      

  5.   

    谢谢 bdmh ,问题解决了