命令行工程中不能使用path_provider,path_provider需要Flutter包的支持。
用"~/Downloads",经测试也不行,如下代码执行失败。
var response = await dio.download(href,savePath);
最后的解决方案是用macOS的命令id -un 先取得用户名,再拼出Downloads的绝对路径来。
String saveDir;
{
final runResult = await Process.run('id', ['-un']);
final userRaw = runResult.stdout as String;
//返回的字符串最后有一个"\n"要处理掉
String userName = userRaw.trim();
saveDir = '/Users/$userName/Downloads';
}