Win32API テンポラリファイル名を作成する GetTempFileName

テンポラリファイル名を作成するには、GetTempFileName関数を使用する。


GetTempFileNameのプロトタイプ

UINT GetTempFileName(
  LPCTSTR lpPathName,      // ディレクトリ名
  LPCTSTR lpPrefixString,  // ファイル名の接頭辞
  UINT uUnique,            // 整数
  LPTSTR lpTempFileName    // ファイル名を格納するバッファ
);

  • uUniqueに0以外を指定した場合、lpPrefixStringで指定した接頭辞に、uUniqueの16進表記を連結したファイル名が生成される。この場合は、ファイルそのものは作成されない。


  • uUniqueに0を指定した場合、lpPrefixStringで指定した接頭辞にシステム時刻に基づいて生成された16進文字列が連結された文字列がファイル名となる。この場合、テンポラリファイルが実際に作成される



使用例

#include <windows.h>

int main()
{
	char szTempPath[MAX_PATH];
	char szTempFileName[MAX_PATH];

	GetTempPath(
            sizeof(szTempPath)/sizeof(szTempPath[0]), szTempPath);

	//uUniqueに0を指定した場合(テンポラリファイルが作成されない)
	GetTempFileName(szTempPath, "Prefix", 0, szTempFileName);
	puts(szTempFileName);


	//uUniqueに0以外を指定した場合(テンポラリファイルが作成される)
	GetTempFileName(szTempPath, "Prefix", 1, szTempFileName);
	puts(szTempFileName);

	return 0;
}


参考
http://msdn.microsoft.com/ja-jp/library/cc429354.aspx