修剪文件名但保留文件扩展名

时间:2016-03-11 15:24:15

标签: delphi delphi-xe2

有没有人知道如何修剪字符串/文件名但保留文件扩展名?

例如:

我希望 Picture1.jpg 成为 Pic.jpg

我一直在玩StrUtils单位而无法找到解决方案。 LeftStr是我想到的第一件事。

1 个答案:

答案 0 :(得分:3)

将名称拆分为词干和扩展名。缩短词根。然后重新组合。像这样:

function ReduceFileName(const FileName: string; const MaxStemLength: Integer): string;
var
  Ext: string;
  StemLength: Integer;
begin
  Assert(MaxStemLength > 0);
  Ext := ExtractFileExt(FileName);
  StemLength := Length(FileName) - Length(Ext);
  if StemLength <= MaxStemLength then begin
    Result := FileName;
    exit;
  end;
  Result := Copy(FileName, 1, MaxStemLength) + Ext;
end;