关于findfirst 和findnext 的简单问题(100分)

  • 主题发起人 主题发起人 swordman_hu
  • 开始时间 开始时间
S

swordman_hu

Unregistered / Unconfirmed
GUEST, unregistred user!
我用findfirst 和findnext 查找某个目录的文件
然后把找找到的文件放到一个数组里面
if findfirst(filepath+ '/' +code +'*.mp3',faAnyFile,sf) = 0 then
begin
afile :=sf.Name;
while findnext(sf) =0 do
begin
afile :=sf.Name;
end;
end
现在我的想法是希望,'要查找的文件'先按一定的顺序排列好(如按文件的名称,文件的大小,文件的日期..),然后才放到afile数组里面
这样在数组里面的文件文件名是按一定顺序排列好的
请问如何才能实现???

 
用ListView
 
一按文件大小排序为例:
Asize数组保存文件大小
if findfirst(filepath+ '/' +code +'*.mp3',faAnyFile,sf) = 0 then
begin
afile :=sf.Name;
asize := sf.size;
while findnext(sf) =0 do
begin
afile :=sf.Name;
asize :=sf.size;
for j := i downto 1 do
begin
if asize[j]<asize[j-1] then
begin
afile[j] := afile[j-1];
asize[j] := asize[j-1];
afile[j-1] :=sf.Name;
asize[j-1] :=sf.size;
end else
break;
end;
end;
end
 
自己写排序的代码
 
要按文件名排序很简单,直接将找到的文件名放到 TStringList 中,
最后调用其 Sort 方法即可

若要按其他的信息排序,恐怕麻烦一点,得自己写排序代码
 
后退
顶部