テンポラリファイルの作成

テンポラリファイルを作成してそのファイル名を取得するには、APIのGetTempFileName関数を使用します。この関数もDelphiネイティブな関数にしてしまいます。また、上のTipsで作ったテンポラリフォルダ取得関数と組み合わせて使えば、Windowsのテンポラリフォルダにテンポラリファイルを作れてしまいます。

なお、GetTempFileNameはファイル名を返すだけでなく、0バイトの空のファイルを作成します。ファイルが必要なくなったら確実にファイルを削除するようにしましょう。

function GetTempFileName(Directory, FileName: String): String;
var
  Buffer: PChar;
begin
  { Directoryに文字列が設定されていない場合 }
  { 現在のディレクトリに作成する            }
  if Directory = '' then Directory := '.';
  { ファイル名が設定されていない場合tmpで補う }
  if FileName = '' then FileName := 'tmp';
  { APIを呼び出してテンポラリファイル名を取得する }
  Buffer := AllocMem(MAX_PATH);
  try
    if Windows.GetTempFileName(PChar(Directory),
         PChar(FileName), 0, Buffer) <> 0 then
      Result := Buffer;
  finally
    FreeMem(Buffer);
  end;
end;

Copyright 2001 Rinka Kouzuki All Rights Reserved.