Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Создание временного файла

Delphi , Файловая система , Файлы

Создание временного файла

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

function GetTempFile(const Extension: string): string;
 var
   Buffer: array[0..MAX_PATH] of Char;
   aFile: string;
 begin
   repeat
     GetTempPath(SizeOf(Buffer) - 1, Buffer);
     GetTempFileName(Buffer, '~', 0, Buffer);
     Result := ChangeFileExt(Buffer, Extension);
   until not FileExists(Result);
 end;

 procedure TForm1.Button1Click(Sender: TObject);
 begin
   ShowMessage(GetTempFile('.~tp'));
   // The temp. file looks like C:\WINDOWS\TEMP\~61D5.TMP 
end;

  { 
  Note: 
  The GetTempFile function just returns a unique filename but 
  doesn't create the file. 
}

 { 
  Bemerkung: 
  Die GetTempFile Funktion liefert nur den Namen der temp. 
  Datei aber erstellt sie nicht. 
}

Программная функция GetTempFile в этом коде Delphi создает временное имя файла с указанным расширением, которое гарантировано не существует при возвращении функции.

Вот разбивка на шаги, что делает каждый часть кода:

  • Функция GetTempFile принимает параметр Extension (строка) и возвращает временное имя файла с этим расширением.
  • Она использует два переменных: Buffer, который является массивом символов, и aFile, которая является строкой. Эти переменные используются для хранения пути к временному файлу и имени соответственно.
  • Функция повторно вызывает функцию GetTempPath (которая получает путь к временной директории) и функцию GetTempFileName (которая генерирует уникальное имя временного файла в этом пути).
  • Затем она комбинирует эти с указанным расширением, используя ChangeFileExt, что приводит к уникальному временному имени файла с этим расширением.
  • Наконец, она проверяет, существует ли сгенерированный файл, используя FileExists. Если он существует, функция повторно вызывает процесс, пока не получит несуществующий файл.

Процедура Button1Click демонстрирует, как использовать эту функцию. Она вызывает GetTempFile с расширением .~tp и затем отображает сообщение с результатом временного имени файла.

Как отмечено в комментариях кода, функция GetTempFile только возвращает уникальное имя файла, но не создает файл сам.

Вот альтернативное решение, использующее встроенный класс TPath Delphi:

function GetTempFile(Extension: string): string;
begin
  Result := TPath.GetTempFileName + '.' + Extension;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(GetTempFile('.~tp'));
end;

Это код достигает того же результата в более компактной форме, используя TPath.GetTempFileName, которая генерирует уникальное имя временного файла, и конкатенируя его с указанным расширением.

Создается функция GetTempFile, которая возвращает уникальное имя файла временной папки Windows с указанным расширением, если файл с таким именем уже существует, то функция будет повторять процесс до тех пор, пока не будет найдено свободное имя.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Файлы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-10-24 20:00:51/0.0035789012908936/0