Delphiメモ

No010:ファイル名を拡張子抜きで取り出す方法

まず、ファイル名を取り出すにはExtractFileName関数を使う。
これは結構有名だからすぐに思いつくはず。
じゃあ取り出したらどうすんのさとなってくるわけで、
Delete手続きを使うのもアリと言っちゃアリだけど、
それよりもChangeFileExt関数を使った方がスマート。

function ChangeFileExt(FileName, Extension: String): String;

FileName引数に指定した文字列の拡張子をExtension引数に指定した拡張子に変更する。
要するにFileName引数に取り出したいファイル名を突っ込んで、
Extension引数を''(文字列無し)にすればいいだけ。
とりあえず例を示す。

function GetFileName(FileName: String): String;
var
  BufStr: String;
begin
  BufStr:= ExtractFileName(FileName);//@
  BufStr:= ChangeFileExt(BufStr,'');//A
  Result:= BufStr;
end;

例としてオリジナルの関数GetFileNameを作成した。
この関数は引数のFileNameにファイルのフルパスを指定し、
返り値はその指定したファイル名を拡張子抜きの名前を返す。
@ではまず、ファイル名のフルパス状態からファイル名だけを取り出し、
String型のBufStr変数に格納する。
次にAで拡張子を無しに変更している。

ファイル形式の変換を行ったり、
ファイル名を加工したりする場合にはChangeFileExt関数は必要となってくるので、
覚えておいて損はないだろう。

トップに戻る

関連ページ