|
Всем известно, что в именах файлов и папок нельзя использовать следующие символы:
Для корректного написания имен файлов, нужна функция FormatNameFile,
позволяющая заменять "запрещенный" символ на другой (по умолчанию –
#0 – удаление "запрещенного" символа').
function FormatFileName(FileName: string; Null: char = #0): string;
var i: integer;
begin
for i:=Length(FileName) downto 1 do
case FileName[i] of
'\', '/', ':', '*', '?', '"', '''', '<', '>', '|':
if Null=#0 then
Delete(FileName, i, 1) else
FileName[i]:=Null;
end;
if Length(FileName)>MAX_PATH then
Result:=Copy(FileName, 1, MAX_PATH) else
Result:=FileName;
Result:=Trim(Result);
end;
где:
FileName – имя файла;
Null – заменяющий символ.
Например,
FormatFileName('Info?5*3.txt') выведет
'Info53.txt';
FormatFileName('Test\nomer\7', ' ') выведет
'Test nomer 7'.
Примечание. Функция не проверяет зарезервированные
имена устройств Windows (например, 'CON',
'PRN', 'AUX',
'NUL', 'COM1–COM9',
'LPT1–LPT9'). Если передать строку
'con.txt', функция вернет ее без изменений, но Windows
не позволит создать такой файл.
|