创建目录
import 'dart:io';
main(List<String> arguments) {
new Directory('dir/subdir').create(recursive: true)
.then((Directory directory) {
print(directory.path);
});
}
执行后会在项目中新建目录
创建临时目录
import 'dart:io';
main(List<String> arguments) {
Directory.systemTemp.createTemp('my_temp_dir')
.then((directory) {
print(directory.path);
});
}
执行后会在系统临时目录下创建一个临时目录
列出目录的清单
import 'dart:io';
main(List<String> arguments) {
var systemTempDir = Directory.systemTemp;
//列出目录内容(递归到子目录),不包含链接
systemTempDir.list(recursive: true, followLinks: false)
.listen((FileSystemEntity entity) {
print(entity.path);
});
}
在控制台列出目录清单
创建链接
import 'dart:io';
main(List<String> arguments) {
var systemTempDir = Directory.systemTemp;
//在系统临时目录里创建一个临时目录
systemTempDir.createTemp('my_temp_dir').then((temp) {
//Platform.pathSeparator获取系统的路径分隔符
var first = '${temp.path}${Platform.pathSeparator}first';
var second = '${temp.path}${Platform.pathSeparator}second';
//创建一个目录
new Directory(first).create(recursive:true);
//创建一个链接
new Link(second).create(first);
});
}
先看临时目录里的文件
现在点击second打开的却是firse,说明second是链接
检查路径是否链接
import 'dart:io';
main(List<String> arguments) {
var systemTempDir = Directory.systemTemp;
systemTempDir.list(recursive: true, followLinks: false)
.listen((FileSystemEntity entity) {
//检查路径是否为链接
FileSystemEntity.isLink(entity.path).then((isLink) {
//如果是链接就输出
if (isLink) print(entity.path);
});
});
}
因为此时系统临时目录中只有刚刚创建的链接,所以只输出一条路径
查看链接的目标
import 'dart:async';
import 'dart:io';
Future<Link> createSymlink() {
return Directory.systemTemp.createTemp('my_temp_dir').then((temp) {
var first = '${temp.path}${Platform.pathSeparator}first';
var second = '${temp.path}${Platform.pathSeparator}second';
new Directory(first).create(recursive:true);
return new Link(second).create(first);
});
}
main(List<String> arguments) {
createSymlink()
.then((Link link) {
print('链接的路径:${link.path}');
link.target().then((String targetPath) {
print('链接的目标路径$targetPath');
})
.catchError((e) {
print(e.message);
});
});
}
输出链接的路径以及其目标路径
时间: 2024-12-13 16:31:31