filesInDirectory method
Future<List<String> >
filesInDirectory(
- String directory, {
- required String workingDirectory,
- List<
String> ignoreDirs = const [], - bool recursive = true,
- DateTime? lastModified,
override
Implementation
@override
Future<List<String>> filesInDirectory(
String directory, {
required String workingDirectory,
List<String> ignoreDirs = const [],
bool recursive = true,
DateTime? lastModified,
}) async {
final directories = switch (recursive) {
false => [fs.path.join(workingDirectory, directory)],
true => switch (platform) {
Platform(isLinux: true) || Platform(isMacOS: true) => await _findLinux(
directory,
workingDirectory: workingDirectory,
file: false,
ignoreDirs: ignoreDirs,
lastModified: lastModified,
),
Platform(isWindows: true) => await _findWindowsDirectory(
directory,
workingDirectory: workingDirectory,
ignoreDirs: ignoreDirs,
lastModified: lastModified,
),
_ => throw UnsupportedError(
'Unsupported platform: ${platform.operatingSystem}',
),
},
};
final futures = <Future<List<String>>>[];
for (final directory in directories) {
futures.add(
file(
'*',
workingDirectory: directory,
ignoreDirs: ignoreDirs,
lastModified: lastModified,
),
);
}
final results = await Future.wait(futures);
return results.expand((e) => e).toList();
}