如何判断用户';s的主目录是,在Dart中?
我想在一个文件中存储一点信息,在命令行应用程序运行期间保存。最好的位置可能是用户主目录中的一个小文件如何判断用户';s的主目录是,在Dart中?,dart,Dart,我想在一个文件中存储一点信息,在命令行应用程序运行期间保存。最好的位置可能是用户主目录中的一个小文件 我想将property/config文件写入用户的主目录。对于Windows、Mac和Linux,我如何知道用户的主目录是什么?我正在使用Dart。我没有访问windows计算机的权限,但我在pub中发现了以下逻辑: if (Platform.environment.containsKey('PUB_CACHE')) { cacheDir = Platform.environment
我想将property/config文件写入用户的主目录。对于Windows、Mac和Linux,我如何知道用户的主目录是什么?我正在使用Dart。我没有访问windows计算机的权限,但我在pub中发现了以下逻辑:
if (Platform.environment.containsKey('PUB_CACHE')) {
cacheDir = Platform.environment['PUB_CACHE'];
} else if (Platform.operatingSystem == 'windows') {
var appData = Platform.environment['APPDATA'];
cacheDir = path.join(appData, 'Pub', 'Cache');
} else {
cacheDir = '${Platform.environment['HOME']}/.pub-cache';
}
对于Linux和Mac,我们可以执行以下操作:
Platform.environment['HOME']
对于Windows,最好在
平台内找到一个位置。环境['APPDATA']
识别操作系统,然后为该特定操作系统使用指定的环境变量。您可以从中读取OS/环境变量。例如:
OS:String OS=Platform.operatingSystem代码>给出了各种检查,如isLinux
,isAndroid
Map envVars=Platform.environment代码>
import 'dart:io' show Platform, stdout;
void main() {
String os = Platform.operatingSystem;
String home = "";
Map<String, String> envVars = Platform.environment;
if (Platform.isMacOS) {
home = envVars['HOME'];
} else if (Platform.isLinux) {
home = envVars['HOME'];
} else if (Platform.isWindows) {
home = envVars['UserProfile'];
}
stdout.writeln(home);
}
导入“dart:io”显示平台,标准输出;
void main(){
字符串os=Platform.operatingSystem;
字符串home=“”;
Map envVars=Platform.environment;
if(平台isMacOS){
home=环境变量['home'];
}else if(Platform.isLinux){
home=环境变量['home'];
}else if(Platform.isWindows){
home=envVars['UserProfile'];
}
标准写入(主页);
}
从这里获取的主目录:这样可以:
String get userHome =>
Platform.environment['HOME'] ?? Platform.environment['USERPROFILE'];
与其他答案类似:
//获取主目录,如果未知,则获取null。
字符串homeditory(){
交换机(平台操作系统){
“linux”案例:
案例“macos”:
返回平台.环境['HOME'];
“窗口”案例:
return Platform.environment['USERPROFILE'];
“安卓”案例:
//可能需要内部存储。
返回'/storage/sdcard0';
案例“ios”:
//iOS实际上没有主目录。
返回null;
“紫红色”案例:
//我不知道。
返回null;
违约:
返回null;
}
}
您可以根据需要调整其行为方式。我确实试着找出了Fuchsia的答案,但老实说,我不知道它是否有主目录
AppData
是用于在Windows上存储用户数据的几个“特殊文件夹”之一。回顾它们并选择最适合您需要的一个是很好的-