Мне нужно удалить все файлы, имена которых начинаются с «a», а затем три произвольные буквы и расширение «.txt», например «a123.txt». Вот код:FindFirst и вопросительный знак
var
sFileMask: string;
tsrMessage: TSearchRec;
begin
sFileMask := 'c:/a???.txt';
if SysUtils.FindFirst(sFileMask, 0, tsrMessage) = 0 then
begin
repeat
ShowMessage(tsrMessage.Name);
until FindNext(tsrMessage) <> 0;
SysUtils.FindClose(tsrMessage);
end;
end;
Я всегда думал, что знак вопроса означает, что один и только один символ, но, к моему удивлению, обнаружил, что этот код возвращает «a.txt», «a1.txt» и «A123. txt ". Есть ли простой способ изменить код для поиска только таких файлов, как «a123.txt»?
Да, я также хотел использовать этот метод, но пример, который я использовал, был упрощен. На самом деле мне нужно удалить файлы в соответствии с маской, как в формате, таком как% 03d.txt и т. Д. В этом случае код становится слишком сложным для такой простой задачи, поэтому я решил, что я делаю что-то неправильно. – Molochnik
@Molochnik: Смотрите раздел EDIT ... – HeartWare