FSF.MkTemp

Programming Far Manager plugins

MkTemp

Функция FSF.MkTemp создаёт имя временного файла на основе шаблона.
size_t WINAPI MkTemp(
  wchar_t *Dest,
  size_t DestSize,
  const wchar_t *Prefix
);

Параметры

Dest
Указатель на буфер, который получит полное имя временного файла в верхнем регистре. Установите Dest = NULL для того, чтобы узнать необходмый размер буфера.
DestSize
Максимальное количество символов, которое можно поместить в Dest, с заключительным нулём.
Prefix
Указывает на оканчивающуюся нулём строку-префикс. Максимум первые четыре символа из этой строки будут использованы в качестве префикса имени файла. Far Manager дополнит символами '0' префикс, если размер Prefix меньше 4.
Если Prefix = NULL или пустой строке, то будет применён стандартный префикс "FTMP"

Возвращаемое значение

Функция возвращает необходимый размер буфера Dest в символах.

Примечание

  1. Имя временного файла формируется объединением пути к временному каталогу (получаемого через вызов функции GetTempPath ), переданного префикса, набора случайных шестнадцатеричных цифр. Формат:

    PrefXXXP.PTT

    здесь
       Pref - 4-х символьный префикс;
       XXX - три 16-ричных цифры;
       PP - две 16-ричных цифры PID (результат функции GetCurrentProcessId );
       TT - две 16-ричных цифры TID (результат функции GetCurrentThreadId ).

  2. Функция, физически не создаёт файл на диске, только формирует имя.

Пример

wchar_t TempName[MAX_PATH];

FSF.MkTemp(TempName,MAX_PATH,NULL);         -> "FTMP000D.P50"
FSF.MkTemp(TempName,MAX_PATH,L"");          -> "FTMP000D.P50"
FSF.MkTemp(TempName,MAX_PATH,L"MY");        -> "MY00000D.P50"
FSF.MkTemp(TempName,MAX_PATH,L"BaR");       -> "BAR0000D.P50"
FSF.MkTemp(TempName,MAX_PATH,L"TstPlugin"); -> "TSTP000D.P50"
Смотрите также: