テンポラリファイルを作成してそのファイル名を取得するには、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;
|