日記書くネタが無いので。ロングファイルネームをショートファイルネームにするのは、ExtractShortPathName()で一発なんですが、逆が無かったりする。で、書くわけさ。
function ExtractLongPathName(FileName: TFileName): String;
var
sr : TSearchRec;
begin
Result := '';
FileName := ExpandFileName(FileName);
while LastDelimiter('\', FileName) >= 3 do
begin
if FindFirst(FileName, faAnyFile, sr) = 0 then
begin
try
Result := '\' + sr.Name + Result;
finally
FindClose(sr);
end;
end
else
begin
Result := '\' + ExtractFileName(FileName) + Result;
end;
FileName := ExtractFilePath(FileName);
SetLength(FileName, Length(FileName) - 1);
end;
Result := FileName + Result;
end;
実は、あんまり使い道ないんですが、ショートファイルネームかロングファイルネームのどちらが取得されるかわからない場合、とりあえずこの関数に通せば、ロングファイルネームで考えられる・・・と。どんな場合やねん。
友人曰く、僕のDelphiのコードは、「begin~end書きすぎ」だそうだ。なんとなく、挟んでないと落ち着かないんだよ。