如何循环打开同一个文件夹路径中的多个文件? 那位仁兄可以告诉我:如何用一个循环,打开文件夹中的多个文件?我需要的是一个源代码的例子。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 find first,find nextdelphi帮助有例子的 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; PFileInfo 用不用无所谓,自己定义的 PFileInfo = ^TFileInfo; TFileInfo = record sPath: string; sName: string; sExt: string; end; 如果是在同一个文件夹里的话,用Opendialog控件吧,设置ofAllowMultiSelect为True,可以选取多个不同类型的文件,文件列表保存在Opendialog.Files里.再用循环对文件进行处理即可 Frame继承 DELPHI很热 cxLookupComboBox使用中的一个问题? 水晶报表的初级问题? 请问在调用存储过程后如何获得返回的记录集? 怎样在子窗口中使用数据库控件? Delphi 请教下关于反编译的问题!急需援助! 不肯借、、、 窗口执行顺序问题,请多帮助,谢谢 字符串的问题? 用两个Tadoquery控件如何实现两个表的关联?
delphi帮助有例子的
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;
PFileInfo = ^TFileInfo;
TFileInfo = record
sPath: string;
sName: string;
sExt: string;
end;