最好能有源吗供参考,谢谢。

解决方案 »

  1.   

    遍历下面的这个函数就可以了:
    procedure DirToTreeView(Tree: TTreeView; Directory: string; Root: TTreeNode; IncludeFiles:
      Boolean);
    var
      SearchRec         : TSearchRec;
      ItemTemp          : TTreeNode;
    begin
      with Tree.Items do
      try
        BeginUpdate;
        if Directory[Length(Directory)] <> '\' then Directory := Directory + '\';
        if FindFirst(Directory + '*.*', faDirectory, SearchRec) = 0 then
        begin
          repeat
            if (SearchRec.Attr and faDirectory = faDirectory) and (SearchRec.Name[1] <> '.') then
            begin
              if (SearchRec.Attr and faDirectory > 0) then
                Root := AddChild(Root, SearchRec.Name);
              ItemTemp := Root.Parent;
              DirToTreeView(Tree, Directory + SearchRec.Name, Root, IncludeFiles);
              Root := ItemTemp;
            end
            else if IncludeFiles then
              if SearchRec.Name[1] <> '.' then
                AddChild(Root, SearchRec.Name);
          until FindNext(SearchRec) <> 0;
          FindClose(SearchRec);
        end;
      finally
        EndUpdate;
      end;
    end;
      

  2.   

    用API函数GetFileTime得到创建的时间,然后用当前的时间减去创建时间,如果大于30天就DeleteFile。
      

  3.   

    Kevin_Lmx: 小弟刚学,能否给个原吗参考(包含遍历),谢谢。
      

  4.   

    jinjazz(近身剪(N-P攻略)又是第一!
    另创建日期也可以从SearchRec中得来:
     TSearchRec = record
        Time: Integer;
        Size: Integer;
        Attr: Integer;
        Name: TFileName;
        ExcludeAttr: Integer;
        FindHandle: THandle;
        FindData: TWin32FindData;
    end;
    Size 文件大小 in bytes. 
    Name 文件名(含扩展名)
    FindHandle is an internal handle used to track find state.
    FindData 文件创建时间,最后修改时间等等
      

  5.   

    {请慎重调试~~损失自负}uses FileCtrl, dateutils;
    {$R *.dfm}procedure DelFiles(Directory: string);
    var
      SearchRec: TSearchRec;
    begin
      try
        if Directory[Length(Directory)] <> '\' then
          Directory := Directory + '\';
        if FindFirst(Directory + '*.*', faDirectory, SearchRec) = 0 then
        begin
          repeat
            if (SearchRec.Attr and faDirectory = faDirectory) and (SearchRec.Name[1]
              <> '.') then
            begin
              if (SearchRec.Attr and faDirectory > 0) then
                DelFiles(Directory + SearchRec.Name);
            end
            else if SearchRec.Name[1] <> '.' then
            begin
            {删除30天之前的文件}
              if DaysBetween(now, filedatetodatetime(SearchRec.Time)) > 30 then
                if messagedlg('删除文件' + Directory + SearchRec.Name, mtwarning,
                  [mbyes, mbno], 0) = mryes then
                  DeleteFile(Directory + SearchRec.Name);
            end;
          until FindNext(SearchRec) <> 0;
          FindClose(SearchRec);
        end;
      finally
      end;
    end;
      

  6.   

    测试~~建立一个目录,把以前没用的文件以及目录剪切几个近来,另外新创建几个文件
                                                ~~~~
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      DelFiles('E:\test');
    end;