删除一个目录下的某种文件:
如 .txt,  DeleteFile(path + '*.txt') 不行,怎么删?

解决方案 »

  1.   

    path最后一个字符为‘\‘??
    遍历一个个删!!
      

  2.   

    我写了,上面笔误:
    '\*.txt';
    *用具体的名字可以,但不止一个文件时不行啊!
      

  3.   

    DeleteFile好象不能批量删
    如果非要批量删,就自己写了
      

  4.   

    你居然天真的认为可以支持*,没有办法,你只能循环遍历所有的*.txt文件,得到他们的文件名,然后调用DeleteFile删除
      

  5.   

    procedure RemoveTree(path: string;ext:string);
    var
      FileList: TStringList;
      i: integer;
      procedure GetFileList(FileSpec: string;
                            NamesOnly: Boolean;
                            var FileList: TStringList);
      var
        SR: TSearchRec;
        DosError: integer;
      begin
        FileList.Clear;
        DosError := FindFirst(FileSpec, faAnyFile-faDirectory, SR);
        while DosError=0 do
        begin
          if NamesOnly  then
             FileList.Add(SR.Name)
          else
             FileList.Add(ExtractFilePath(FileSpec)+SR.Name);
          DosError := FindNext(SR);
        end;
      end;
    begin
      FileList := TStringList.Create;
      GetFileList(path+'*.'+ext,False,FileList);
      for i := 0 to FileList.Count-1 do
      begin
        DeleteFile(PChar(FileList[i]));
      end;
      filelist.Destroy;
      delete(path,length(path),1);
    //  rmdir(pchar(path));
      RemoveDirectory(pchar(path));
    end;