В fileutil есть функция загрузки содержимого каталога FindAllFiles которая возвращает TStringList вида:
Путь\Файл0
Путь\Файл1
Путь\Файл2
Путь\Файл3
...
Так вот есть ли иной метод прочитать содержимое так что бы результат не содержал "Путь\"? Мне нужен предельно простой и быстрый метод.
Быстрое чтение имен файлов из каталога
Модератор: Модераторы
Azazaz писал(а):Мне нужен предельно простой и быстрый метод.
тогда используй функцию SuperFindAllFiles()!
если не знаешь где её найти, то выглядит она так:
Код: Выделить всё
function SuperFindAllFiles(const SearchPath: String; SearchMask: String = '';
SearchSubDirs: Boolean = True; DirAttr: Word = faDirectory): TStringList; overload;
var
i : integer;
p : integer;
begin
Result:=FindAllFiles(SearchPAth, SearchMask, SearchSubDirs, DirAttr);
if Assigned(Result) then begin
p:=length(IncludeTrailingPathDelimiter(SearchPath))+1;
for i:=0 to Result.Count-1 do
Result[i]:=Copy(Result[i], p, maxint);
end;
end;
Супер быстро! Супер просто!
Нашел:
Код: Выделить всё
var
FL: TStringList; SR: TSearchRec;
...
FL:= TStringList.Create;
if FindFirst(Path + DirectorySeparator + '*', faAnyFile, SR)=0 then begin
repeat FL.Append(SR.Name);
until FindNext(SR)<>0;
end;
FindClose(SR);Когда читаешь содержимое каталога через FindFirst, FindNext то первыми файлами всегда идут:
1. "."
2. ".."
Вопросы:
Что за файлы такие?
Подобный метод чтения работает и на других платформах? (кроме Windows)
1. "."
2. ".."
Вопросы:
Что за файлы такие?
Подобный метод чтения работает и на других платформах? (кроме Windows)
Почитай про "Относительный и абсолютный путь" в файловых системах.
.. – это каталог верхнего уровня. Тут понятно.
. – указатель на то что файл находиться в текущем каталоге?
Я как параметр передаю faAnyFile что как бы исключает возврат указателей на каталоги, почему тогда возвращается ".." (как бы каталог априори)?
. – указатель на то что файл находиться в текущем каталоге?
Я как параметр передаю faAnyFile что как бы исключает возврат указателей на каталоги, почему тогда возвращается ".." (как бы каталог априори)?
Azazaz писал(а): как параметр передаю faAnyFile что как бы исключает возврат указателей на каталоги
Каталог внезапно тоже является файлом, так что указание этого параметра ничего не исключает.
Анализ на то, каталог это или нет, должен производиться после того, как запись о файле прочитана. Там же - анализ на расширение, совпадение имени и прочее.
