listDirectories function

Future<List<Directory>> listDirectories(
  1. Directory path, {
  2. dynamic excludeHidden = false,
  3. dynamic followLinks = false,
  4. FlutterFileUtilsSorting? sortedBy,
  5. bool reversed = false,
})

Return a List of directories starting from the given path

  • hidden : true or false return hidden directory, like: "/storage/.thumbnails"
  • true will return hidden directories
  • sortedBy: Sorting
  • bool reversed: in case parameter sortedBy is used

Implementation

Future<List<Directory>> listDirectories(Directory path,
    {excludeHidden: false,
    followLinks = false,
    FlutterFileUtilsSorting? sortedBy,
    bool reversed: false}) async {
  List<Directory> directories = [];
  try {
    List contents = path.listSync(followLinks: followLinks, recursive: false);
    if (excludeHidden == true) {
      for (var fileOrDir in contents) {
        if (fileOrDir is Directory) {
          if (!fileOrDir.path.startsWith("."))
            directories
                .add(Directory(pathlib.normalize(fileOrDir.absolute.path)));
        }
      }
    } else {
      for (var fileOrDir in contents) {
        if (fileOrDir is Directory) {
          // dir/../dir3 to dir/dir2/dir3
          directories
              .add(Directory(pathlib.normalize(fileOrDir.absolute.path)));
        }
      }
    }
  } catch (error) {
    throw FileManagerError(permissionMessage + error.toString());
  }
  if (directories != null) {
    return sortBy(directories, sortedBy) as FutureOr<List<Directory>>;
  }

  return directories;
}