那位仁兄可以告诉我:
如何用一个循环,打开文件夹中的多个文件?
我需要的是一个源代码的例子。

解决方案 »

  1.   

    find first,find next
    delphi帮助有例子的
      

  2.   

    procedure TRuleListForm.tvDirChange(Sender: TObject; Node: TTreeNode);
    var
      dir: TSearchRec;
      path: string;
      sItem: TListItem;
      i: integer;
      fInfo: TSHFileInfo;
      fName:string;
      typeName: string;  fi: PFileInfo;
    begin
      if tvDir.Selected = nil then Exit;
      
      lvFile.Items.Clear;
      imglSmall.Clear;
      imglLarge.Clear;
      lvFile.SortType:=stNone;
      path:=pdirinfo(tvDir.Selected.Data)^.sPath + '\*.*';
      if FindFirst(path, faAnyFile, dir) = 0 then
      begin
        i:=0;
        try
          repeat
            if not (dir.Attr in [faDirectory, faHidden]) then
            begin          New(fi);
              fi^.sPath := pdirinfo(tvDir.Selected.Data)^.sPath + '\'+ dir.Name;
              fi^.sExt := ExtractFileExt(dir.Name);
              fName := ExtractFileName(dir.Name);
              Delete(fName, 1, Length(fName)-Length(fi^.sExt));
              fi^.sName := fName;
              fName:=pdirinfo(tvDir.Selected.Data)^.sPath + '\'+ dir.Name;
              SHGetFileInfo(Pchar(fName), 0, fInfo, sizeof(TSHFileInfo),
                  SHGFI_ICON or SHGFI_SMALLICON or SHGFI_TYPENAME or SHGFI_DISPLAYNAME);
              ImageList_AddIcon(imglSmall.Handle, fInfo.hIcon);
              SHGetFileInfo(Pchar(fName), 0, fInfo, sizeof(TSHFileInfo),
                  SHGFI_ICON or SHGFI_LARGEICON or SHGFI_TYPENAME or SHGFI_DISPLAYNAME);
              ImageList_AddIcon(imglLarge.Handle, fInfo.hIcon);
              sItem:=lvFile.Items.Add;
              sItem.Caption:=finfo.szDisplayName;
              sItem.SubItems.Add(inttostr(dir.Size div 1024) + ' KB');
              if finfo.szTypeName = '' then
              begin
                typeName:=UpperCase(ExtractFileExt(dir.Name))+'文件';
                Delete(typeName, 1, 1);
              end
              else typeName:=finfo.szTypeName;
              sItem.SubItems.Add(typeName);
              sItem.SubItems.Add(DateTimetostr(FileDateToDateTime(dir.Time)));
              sItem.ImageIndex:=i;
              sItem.Data := fi;
              inc(i);
            end;
          until FindNext(dir) <> 0;
        finally
          FindClose(dir);
        end;
      end;
      lvFile.SortType:=stText;
      

  3.   

    PFileInfo 用不用无所谓,自己定义的
      PFileInfo = ^TFileInfo;
      TFileInfo = record
        sPath: string;
        sName: string;
        sExt: string;
      end;
      

  4.   

    如果是在同一个文件夹里的话,用Opendialog控件吧,设置ofAllowMultiSelect为True,可以选取多个不同类型的文件,文件列表保存在Opendialog.Files里.再用循环对文件进行处理即可