pickFiles static method
Implementation
static Future<List<PickerResult>> pickFiles({
required BuildContext context,
FilePickerConfig? config,
}) async {
try {
if (!await _checkAndRequestPermission(context)) {
return [];
}
final file_picker.FilePickerResult? result = await file_picker.FilePicker.platform.pickFiles(
type: config?.fileType != null ? _convertFileType(config!.fileType!) : file_picker.FileType.any,
);
if (result == null || result.files.isEmpty) {
return [];
}
int maxCount = config?.maxCount ?? maxFileCount;
List<file_picker.PlatformFile> files = result.files;
if (files.length > maxCount) {
if (context.mounted) {
AtomicLocalizations atomicLocal = AtomicLocalizations.of(context);
_showErrorDialog(context, atomicLocal.maxCountFile(maxCount));
}
files = files.take(maxCount).toList();
}
List<PickerResult> results = [];
for (final file in files) {
String finalPath = file.path ?? '';
if (finalPath.isNotEmpty) {
results.add(PickerResult(
filePath: finalPath,
fileName: file.name,
fileSize: file.size,
extension: path.extension(file.name).toLowerCase().replaceFirst('.', ''),
));
}
}
return results;
} catch (e) {
debugPrint('FilePickerService.pickMultipleFiles error: $e');
return [];
}
}