Автоматическое получение следующего имени файла в каталоге
Автор: Igor Kovalevsky
WEB-сайт: http://delphibase.endimus.com
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Автоматическое получение следующего имени файла в каталоге
Функция предоставляет Вам каждый раз новое имя файла,
а если список файлов исчерпан, начинает перебор снова.
Может пригодиться при написании Вашего собственного
слайдшоу с фотографиями или в похожих задачах, где
важно не повторить до конца списка уже воспроизведённый файл.
Зависимости: Windows, Messages, SysUtils, Classes, DIALOGS;
Автор: Igor Kovalevsky, pc-ambulance@mail.ru, Владикавказ
Copyright: Igor Kovalevsky
Дата: 1 июня 2002 г.
***************************************************** }
function GetNextFileName(Path: string): string;
const
ListFileName = 'ListFile.lst';
FileMask = '*.*'
var
SearchRec: TSearchRec;
begin
with TStringList.Create do
begin
if FileExists(ListFileName) then
begin
LoadFromFile(ListFileName);
end;
if FindFirst(IncludeTrailingBackslash(Path) + FileMask,
faAnyFile and not faDirectory,
SearchRec) = 0 then
begin
// Редкий случай, когда цикл repeat..until
// на что-то годится
repeat
Result := SearchRec.Name;
if (FindNext(SearchRec) <> 0) then
begin
Clear;
end;
until (IndexOf(Result) = -1);
Add(Result);
FindClose(SearchRec);
end
else
begin
Result := '';
end;
SaveToFile(ListFileName);
Free;
end;
end;
Пример использования:
ShowMessage(GetNextFileName('C:\Windows\'));
|