关于文件遍历(DELPHI)

2025-01-31 10:31:10
推荐回答(3个)
回答1:

先用FindFirst、FindNext把所有文件清单搜索保存在数组或者TStringList里面,这样你的程序就可以上一张、下一张进行浏览了,系统本身没有找上一张的函数。

FindFirst、FindNext的使用你大概会吧,如果不熟悉,我下面粘贴一段我程序的代码,你可以借鉴:

function  DirListStr(const  FileName:  string):  string;
var  SearchRec:  TSearchRec;  ok:  integer;  attrs:  string[5];
begin
    ok:=FindFirst(filename,$3f,SearchRec);
    Result:='Directory  of  '+filename;
    while  ok=0  do  begin
        with  SearchRec  do  begin
            if  Attr  and  $10  <>  0  then  attrs[1]:='D'  else  attrs[1]:='-';
            if  Attr  and  $20  <>  0  then  attrs[2]:='A'  else  attrs[2]:='-';
            if  Attr  and  $4    <>  0  then  attrs[3]:='S'  else  attrs[3]:='-';
            if  Attr  and  $2    <>  0  then  attrs[4]:='H'  else  attrs[4]:='-';
            if  Attr  and  $1    <>  0  then  attrs[5]:='R'  else  attrs[5]:='-';
            setlength(attrs,5);
            Result:=Result+#13#10+attrs+'  '+DateTimeToStr(FileDateToDateTime(time))+#9+IntToStr(size)+#9+Name;
        end;
        ok:=FindNext(SearchRec);
    end;
    FindClose(SearchRec);
end;

我的程序是返回一个文件的列表清单,你可以修改为数组,把相信内容保存在数组里面。

回答2:

大致思路:
把遍历结果暂存(数组)
生成一个编号变量分别对应每个文件名
按钮给该变量+1或-1(当然要设置一个上下限,省得出错。)
根据该变量打开对应的文件。

回答3:

你可以先将此路径下的所有jpg文件的完整路径(含文件名)保存到一个TStringList中,上一个、下一个就只是操作TStringList中的文件名,得到了文件名,具体文件应该不难操作了。这个思路不知道你用不用得上