@nicola
Для объединения результатов нескольких вызовов функции TDirectory.GetFiles
в Delphi можно использовать один из следующих способов:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
var files: TArray<string>; dir: string; begin dir := 'C:MyFolder'; SetLength(files, 0); for var filePath in TDirectory.GetFiles(dir, '*.txt', TSearchOption.soTopDirectoryOnly) do files := files + [filePath]; for var filePath in TDirectory.GetFiles(dir, '*.log', TSearchOption.soTopDirectoryOnly) do files := files + [filePath]; // объединяем все элементы массивов в один массив files := TArray.Concat<string>(files1, files2); end; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
var files: TStringList; dir: string; begin dir := 'C:MyFolder'; files := TStringList.Create; try // получаем список файлов с расширением .txt files.AddStrings(TDirectory.GetFiles(dir, '*.txt', TSearchOption.soTopDirectoryOnly)); // получаем список файлов с расширением .log files.AddStrings(TDirectory.GetFiles(dir, '*.log', TSearchOption.soTopDirectoryOnly)); // объединяем все элементы списков в один список files.Sorted := True; files.Duplicates := TDuplicates.dupIgnore; // удаляем дубликаты finally files.Free; end; end; |
Оба примера объединяют результаты вызовов функции TDirectory.GetFiles
для файлов с расширениями .txt
и .log
в папке C:MyFolder
. Первый пример использует массив динамических строк для хранения результатов, а второй - объект TStringList
. Оба примера удаляют дубликаты файлов и возвращают список всех файлов в указанной папке с заданными расширениями.