Метод listSync
Метод listSync класса Directory возвращает
список содержимого директории синхронно, то есть
блокирует выполнение программы до завершения
чтения. Метод возвращает список объектов
FileSystemEntity (файлов и поддиректорий).
В первый параметр мы передаем булево значение
recursive - если оно равно true,
содержимое читается рекурсивно, включая
вложенные директории. Во второй параметр
мы передаем булево значение followLinks -
если оно равно true, символические ссылки
разыменовываются. Оба параметра необязательны
и по умолчанию равны false.
Синтаксис
dir.listSync([recursive, followLinks])
Пример
Давайте создадим директорию и файлы внутри нее, а затем получим синхронный список содержимого:
import 'dart:io';
void main()
{
Directory dir = Directory('test_dir');
dir.createSync();
File('test_dir/a.txt').createSync();
File('test_dir/b.txt').createSync();
List<FileSystemEntity> res = dir.listSync();
print(res);
dir.deleteSync(recursive: true);
}
Результат выполнения кода:
[File: 'test_dir/a.txt', File: 'test_dir/b.txt']
Пример
Давайте получим список содержимого рекурсивно, включая вложенные директории:
import 'dart:io';
void main()
{
Directory dir = Directory('test_dir');
dir.createSync();
Directory('test_dir/sub').createSync();
File('test_dir/sub/c.txt').createSync();
List<FileSystemEntity> res = dir.listSync(recursive: true);
print(res);
dir.deleteSync(recursive: true);
}
Результат выполнения кода:
[Directory: 'test_dir/sub', File: 'test_dir/sub/c.txt']
Пример
Давайте переберем все элементы директории и выведем только файлы:
import 'dart:io';
void main()
{
Directory dir = Directory('test_dir');
dir.createSync();
File('test_dir/a.txt').createSync();
Directory('test_dir/sub').createSync();
List<FileSystemEntity> res = dir.listSync();
for (FileSystemEntity entity in res) {
if (entity is File) {
print(entity.path);
}
}
dir.deleteSync(recursive: true);
}
Результат выполнения кода:
"test_dir/a.txt"
Смотрите также
-
класс
Directory,
который представляет директорию -
метод
list,
который возвращает список содержимого асинхронно -
метод
createSync,
который синхронно создает директорию -
метод
delete,
который удаляет директорию