diff --git a/components/rx/trunk/docs/rxfileutils.xml b/components/rx/trunk/docs/rxfileutils.xml index 79899be15..09fc44446 100644 --- a/components/rx/trunk/docs/rxfileutils.xml +++ b/components/rx/trunk/docs/rxfileutils.xml @@ -20,6 +20,11 @@

function GetUserName: string;

Функция GetUserName возвращает имя оператора, зарегистрированного в системе

+ Функция возвращает уникальное имя фала по заданным параметрамADir - папка, к которой создаётся временный файла (по умолчанию - tmp) +APrefix - начало имени файла (по умолчанию - tmp) +AExt - раширение файла (по умолчанию - tmp) + + diff --git a/components/rx/trunk/languages/rxconst.ru.po b/components/rx/trunk/languages/rxconst.ru.po index c80ad7872..f886a7f05 100644 --- a/components/rx/trunk/languages/rxconst.ru.po +++ b/components/rx/trunk/languages/rxconst.ru.po @@ -332,3 +332,4 @@ msgstr "Интерфейс : " #: rxconst.swindowsicofiles msgid "Windows Ico files (*.ico)|*.ico|All files (*.*)|*.*" msgstr "Файлы иконок Windows (*.ico)|*.ico|Все файлы (*.*)|*.*" + diff --git a/components/rx/trunk/rxtools/rxfileutils.pas b/components/rx/trunk/rxtools/rxfileutils.pas index 28cd65b8d..8b5d8658f 100644 --- a/components/rx/trunk/rxtools/rxfileutils.pas +++ b/components/rx/trunk/rxtools/rxfileutils.pas @@ -45,7 +45,7 @@ function GetUserName:string; function IsValidFileNameChar(const AChar: Char): Boolean;inline; function NormalizeFileName(const FileName:string; AReplaceChar:char = '_'):string; //funtion only for filename - without folder name - +function RxGetTempFileName(ADir, APrefix, AExt : string):string; const {$IFDEF WINDOWS} FileNameDisabledChars = [#0 .. #31, '"', '*', '/', ':', '<', '>', '?', '\' , '|']; @@ -243,5 +243,39 @@ begin Result[i]:=AReplaceChar; end; +function RxGetTempFileName(ADir, APrefix, AExt: string): string; +var + Start: String; + i: Integer; +begin + if AExt = '' then + begin + AExt:=ExtractFileExt(APrefix); + if AExt<>'' then + begin + APrefix:=ExtractFileName(APrefix); + end + else + AExt:='.tmp'; + end; + + if (APrefix = '') then + Start:='TMP' + else + Start:=APrefix; + + + if (ADir='') then + Start:=GetTempDir + Start + else + Start:=IncludeTrailingPathDelimiter(ADir) + Start; + + i:=0; + repeat + Result:=Format('%s%.5d%s',[Start, I , AExt]); + Inc(I); + until not FileExists(Result); +end; + end.