Delphi XE2按文件名排序字符串列表



我有一系列文件,其中有各种文件路径和文件名,所有的文件名都有相同的扩展名,但目录名称或路径都不同,并且已经设置了将文件加载到Tstringlist中,我试图将它们排序为文件名顺序,即使它们也有路径。

下面是一个字符串在Tstringlist中的例子:-

c:directory 1AboutUs.lnk
c:directory somethingAAHelp.lnk
c:directory anythingAAATalk.lnk

当按字符串的文件名部分排序时,我希望以。

结束。
c:directory anythingAAATalk.lnk
c:directory somethingAAHelp.lnk
c:directory 1AboutUs.lnk

换句话说,我希望能够根据字符串的文件名部分对带有path的字符串进行排序。

使用TStringList.CustomSort():

function Compare(List: TStringList; Index1, Index2: Integer): Integer;
begin
  Result := CompareStr(
    LowerCase(ExtractFileName(List[Index1])),
    LowerCase(ExtractFileName(List[Index2]))
  );
end;
// Then, just call:
YourStrList.CustomSort(Compare);

最新更新