loadAssets method

Future<List<FileSystemEntity>> loadAssets(
  1. String assetsPath
)

Retrieve all asset files, including diving deep if there are folders inside

Implementation

Future<List<FileSystemEntity>> loadAssets(String assetsPath) async {
  final dir = Directory("${getCurrentPath}/$assetsPath");
  final List<FileSystemEntity> entities = [];
  if (await dir.exists()) {
    final List<FileSystemEntity> list = await dir.list().toList();

    for (var entity in list) {
      if (entity is File && entity.uri.pathSegments.last.contains('.')) {
        entities.add(entity);
      } else if (entity is Directory) {
        final List<FileSystemEntity> subEntities = await loadAssets(
          entity.path.replaceAll("$getCurrentPath/", ""),
        );
        entities.addAll(subEntities);
      }
    }
  } else {
    print('Directory does not exist: ${dir.path}');
  }

  return entities;
}