小弟有一问题.目前很急.过几个小时再来看帖.
我的E盘每天会生成 20050111 根据今天日期生成的文件名 明天就会是 20050112 
一天天太多. 在每个生成的文件夹下还有子文件夹. 
我想每天定时查看目录下有没有 比今天日期还旧的文件夹(就是昨天,或者前几天的文件夹)
我要把它删除...
用到Timer控件 不知道怎么比对日期...
最好有朋友能贴一段代码给我参考.实在比较急...定时删除比今天还旧的文件夹.

解决方案 »

  1.   


    用FileAge(filename:string) 比较
      

  2.   

    用FormatDateTime('yyyymmdd', Date);用这个判断它与文件夹名是否相同的文件夹;下面代码是删除文件的,你建一个过程传入格式化后的文件名与已有文件夹比较再删除:
    function THSFile.Deltree(Dir: string): Boolean;
      function AddDirSuffix(Dir: string): string;
      begin
        Result := Trim(Dir);
        if Result = '' then Exit;
        if Result[Length(Result)] <> '\' then Result := Result + '\';
      end;var
      sr: TSearchRec;
      fr: Integer;
    begin
      if not DirectoryExists(Dir) then
      begin
        Result := True;
        Exit;
      end;
      fr := FindFirst(AddDirSuffix(Dir) + '*.*', faAnyFile, sr);
      try
        while fr = 0 do
        begin
          if (sr.Name <> '.') and (sr.Name <> '..') then
          begin
            if sr.Attr and faDirectory = faDirectory then
              Result := Deltree(AddDirSuffix(Dir) + sr.Name)
            else
              Result := DeleteFile(AddDirSuffix(Dir) + sr.Name);
            if not Result then
              Exit;
          end;
          fr := FindNext(sr);
        end;
      finally
        FindClose(sr);
      end;
      Result := RemoveDir(Dir);
    end;
      

  3.   

    用个笨点的办法
    Timer
    每秒去判断系统时间
    如果是你要的时间
    就执行操作
    删除文件