可处理文件的 Flutter 桌面 macOS 应用程序。
如何实现标准的“在 Finder 中显示”调用以打开包含文件和所选文件的文件夹的 Finder 窗口?
也许如何使其跨平台以在 Windows 上运行时“在资源管理器中显示”?
我不知道在 dart/flutter 中实现此目的最惯用的方法,但我尝试了从 Flutter 应用程序运行不同的 shell 命令,从这个角度来看,最简单的方法就是调用
open -R /path/to/file
(在 macOS 上) .
这是此方法的代码示例:
// This package is for running shell commands
// flutter pub add process_run
import 'package:process_run/shell.dart';
Future<void> revealFile(String filePath) async {
final shell = Shell();
if (Platform.isMacOS) {
try {
await shell.run('''
open -R $filePath
''');
} catch (e) {
throw 'Could not reveal file: $e';
}
// Add branches of code for another platforms here.
} else {
throw 'Unsupported platform';
}
}
我自己不是 Windows 用户,我不知道那里的命令,但如果你有它(我打赌应该有一个类似的),你将添加另一个
if
并使用此命令启动 shell,它应该可以工作也是。