ViNT
Переделал на использование jsr75ex.
1. Виснет при findfirst(Dir); Если в Dir нет папок или файлов, Вместо того чтоб вернуть пустую строку как в конце списка возвращает findnext.
2. Скорость работы примерно равна варианту с jsr75i, и составила 1200 мс на 30 папок и файлов. Почемуто выйгрыша нет. Вот процедура:
procedure ReadDir(MyDir : string); // читать все папки и файлы в 2 строки
var time : integer;
begin
time := GetRelativeTimeMs;
if MyDir = '' then begin
DirsStr := jsr75ex.get_roots; // взять корень файловой системы
FilesStr := '';
end
else begin
DirsStr := '';
FilesStr := '';
s := jsr75ex.findfirst('/'+MyDir); // взять первый объект
while s <> '' do begin
if jsr75ex.is_directory('/'+MyDir + s) > 0 then
DirsStr := DirsStr + s + '|'
else
FilesStr := FilesStr + s + '|';
s := jsr75ex.findnext;
end; {while}
end;
DrawText(IntegerToString(GetRelativeTimeMs - time), 10, 200);
repaint;
delay(2000);
end;