pickFolder static method
Picks a folder and return a FcFilePickerXResult
.
If the user cancels the picker, it returns null
.
writePermission
is only applicable on Android.
Implementation
static Future<FcFilePickerPath?> pickFolder(
{required bool writePermission}) async {
if (Platform.isAndroid) {
final res =
await _safUtil.pickDirectory(writePermission: writePermission);
if (res == null) {
return null;
}
return FcFilePickerPath.fromUri(res.name, res.uri);
}
if (Platform.isIOS) {
final iosPicker = IosDocumentPicker();
final res =
(await iosPicker.pick(IosDocumentPickerType.directory))?.first;
if (res == null) {
return null;
}
return FcFilePickerPath.fromPathAndUri(res.name, res.path, res.url);
}
if (Platform.isMacOS) {
final macosPicker = MacosFilePicker();
final res = (await macosPicker.pick(MacosFilePickerMode.folder))?.first;
if (res == null) {
return null;
}
return FcFilePickerPath.fromPathAndUri(res.name, res.path, res.url);
}
final folderPath = await getDirectoryPath();
if (folderPath == null) {
return null;
}
final folderName = p.basename(folderPath);
return FcFilePickerPath.fromPath(folderName, folderPath);
}