路径连接
import 'package:path/path.dart' as path;
main(List<String> arguments) {
//将现有的两个路径连接
var newPath = path.join('/Users/shailen', 'dart/projects');
print(newPath);
}
输出有个问题,因为不同平台的路径分隔符是不同的,这个问题后面会解决
解析路径
import 'package:path/path.dart' as path;
main(List<String> arguments) {
print(path.split('/Users/shailen'));
print(path.split(r'C:\tempdir\tmp.txt'));
}
输出效果如下
计算相对路径
import 'dart:io' show Directory;
import 'package:path/path.dart' as path;
main(List<String> arguments) {
//从当前目录到系统临时目录的路径
print(path.relative(Directory.systemTemp.path));
//使用相对路径
var path1 = 'docs/book.html';
var path2 = 'articles/list';
print(path.relative(path1, from: path2));
print(path.relative(path2, from: path1));
//使用绝对路径
var samples = 'http://www.dartlang.org/samples';
var docs = 'http://www.dartlang.org/docs';
print(path.relative(samples, from: docs));
print(path.relative(docs, from: samples));
}
输出效果如下
URI和路径的转换
import 'package:path/path.dart' as path;
main(List<String> arguments) {
var uri = path.toUri('http://dartlang.org/samples');
print(path.fromUri(uri));
}
输出效果如下
路径文件的信息
import 'package:path/path.dart' as path;
import 'dart:io';
main(List<String> arguments) {
new File('${Directory.systemTemp.path}/dir/myFile.txt').create(recursive: true)
.then((file) {
//获取完整文件名
print(path.basename(file.path));
//获取文件目录
print(path.dirname(file.path));
//获取文件名
print(path.basenameWithoutExtension(file.path));
//获取文件扩展名
print(path.extension(file.path));
});
}
输出效果如下
平台的路径分隔符
import 'dart:io' show Platform;
import 'package:path/path.dart' as path;
main(List<String> arguments) {
//下面两种方法都能得到当前平台的路径分隔符
print(Platform.pathSeparator);
print(path.separator);
}
这个方法就能解决第一个例子的问题,输出如下
时间: 2024-10-27 18:21:57