userDataDirAndApply static method
系统选目录 → 可选 warnings 确认 → MyUserDataDirSession.apply。
Implementation
static Future<String?> userDataDirAndApply({
required MyUserDataDirStore store,
String? initialDir,
Future<bool> Function(List<String> warnings)? confirmWarnings,
Future<void> Function(String normalizedPath)? onAfterApply,
String confirmButtonText = '选择文件夹',
}) async {
final picked = await dir(
initialDir: initialDir,
confirmButtonText: confirmButtonText,
);
if (picked == null || picked.isEmpty) return null;
await MyUserDataDirValidator.ensureExistingWritable(picked);
final normalized = MyUserDataDirValidator.normalizePath(picked);
final warnings = MyUserDataDirValidator.warningsFor(normalized);
if (warnings.isNotEmpty && confirmWarnings != null) {
final proceed = await confirmWarnings(warnings);
if (!proceed) return null;
}
return MyUserDataDirSession.apply(
userDataDir: normalized,
store: store,
onAfterApply: onAfterApply,
);
}