|
|
||||
Tips > |
|||||
ユニークな一時ファイル名を GetTempFileName で作成 |
更新 : 2009/04/28 |
||||
|
|
||
解説: 一時的なファイル名を作りたい時は GetTempFileName 関数を使うと便利です。この関数は指定ディレクトリにユニークで重複しない一時的なファイルを作成してくれます。 関数は path\prefixnum.tmp の形式で一時的なファイルを作成します。 UINT GetTempFileName(path, prefix, num, tmpFileName); LPCTSTR path このパスで指定したところに一時的なファイルを作成 LPCTSTR prefix 一時的なファイル名に付けるプリフィックス文字列 UINT num 0指定することでファイル名に付加される数をシステム時間から生成(16進値)。 LPTSTR tmpFileName 生成される一時的なファイル名 使用例: 以下の例では、ユニークで一時的なファイルを作成しています。 準備として Button を適当に配置してください。 Button1 をクリックするとアプリケーションと同じディレクトリに一時的な名前でファイルが作成されます。 使用されている定数 MAX_PATH は、パス名およびパス名を構成する個々のフィールドの最大長が定義されています。アプリケーションでは、値(MAX_PATH の値は "260")をコーディングするのではなく、MAX_PATH 定数名を使用したほうが良いとされています。 //------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString tmpPath, prefix; char tmpFileName[MAX_PATH]; tmpPath = '.'; // 一時的なファイルのディレクトリを指定('.' はカレントディレクトリの意)。 prefix = "UNC";// 一時的なファイル名の先頭 3 文字まで指定。 GetTempFileName(tmpPath.c_str(), prefix.c_str(), 0, tmpFileName); Caption = tmpFileName; } //------------------------------------------------------------------- |