unique temp file name/de
From Free Pascal wiki
Jump to navigationJump to search
Dieser Artikel behandelt ausschließlich Windows.
Siehe auch: Multiplatform Programming Guide/de
│
Deutsch (de) │
Zurück zur Seite Code Beispiele.
Dieser Artikel beschäftigt sich mit der Windowsprogrammierung.
Die Funktion generiert für temporäre Dateien einen eindeutigen Dateinamen.
uses
SysUtils, ...;
...
function TempFileName(strPrefix: String): string;
var
pchBuffer: PChar;
pchTempDir: PChar;
pchPrefix: PChar;
const
wrdTempDirSize = 255;
wrdBufferSize = 255;
wrdPrefixSize = 3;
begin
// Speicher anfordern
GetMem(pchBuffer, wrdBufferSize);
GetMem(pchPrefix,wrdPrefixSize);
GetMem(pchTempDir,wrdTempDirSize);
// kürzt das Prefix auf die zulässigen 3 Stellen
StrPCopy(pchPrefix,Copy(strPrefix,0,3));
// kopiert den Inhalt der Umgebungsvariable in ein PChar
StrPCopy(pchTempDir,GetEnvironmentVariable('Temp'));
if GetTempFileName(pchTempDir, pchPrefix, 0, pchBuffer) > 0 then
Result := StrPas(pchBuffer)
else
Result := '';
// Speicher freigeben
FreeMem(pchBuffer, wrdBufferSize);
FreeMem(pchPrefix, wrdPrefixSize);
FreeMem(pchTempDir, wrdTempDirSize);
end;
...
oder einfacher:
uses
...Sysutils...
function TempFileName(strPrefix: String): string;
begin
result:=SysUtils.GetTempFileName('',strPrefix);
end;