Dart的文件、目录和链接(3)

创建目录

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

Dart的文件、目录和链接(3)的相关文章

Dart的文件、目录和链接(1)

系统临时目录 在进入正题之前先科普一下什么是"系统临时目录",顾名思义就是装临时文件用的,通常位于C:\Documents and Settings\用户名(一般为Administrator)\Local Settings\Temp目录下(默认为隐藏目录),此文件夹是用户应用的软件(如,winword)转储临时文件的地方,目的在于临时调用与写入. 安装程序时: 安装程序时,安装程序会将压缩包内的文件全部释放到此文件夹中,然后再提取,若重装系统进行的是覆盖安装,很容易出现"找不

HTML教程-文件之间的链接

教程|链接 超文本中的链接是其最重要的特性之一,使用者可以从一个页面直接跳转到其他的页面.图象或者服务器.一个链接的基本格式如下: <A HREF="资源地址">链接文字</A> ·标签<A>表示一个链接的开始,</A>表示链接的结束: ·属性"HREF"定义了这个链接所指的地方: ·通过点击"链接文字"可以到达指定的文件. <A HREF="http://www.sjstc.edu

包含文件对数据库链接的影响

链接|数据|数据库 你注意到没有,利用MX/UD开发程序时,所有需要链接数据库的页面中,都会在页面的开始部分使用包含文件调用数据库链接文件,如:<!--#include file="Connections/con123456.asp" --> 那么这段代码有什么好研究的吗?当然有研究了,如果你没有正确使用它,那么也许你在本地调试很正常的程序,一旦传到服务器上就出错,一个可能的原因就是包含文件在作怪!让我们了解一下什么是包含文件: ●包含文件 全称:Server_Side I

文件/目录权限设置命令chmod的详细用法

chmod是文件/目录权限设置的命令,在Linux中经常遇到,本博文以下总结chmod的详细用法.  Linux/Unix的档案调用权限分为三级,即档案拥有者user.群组group.其他other.u表示该档案的拥有者,g表示与该档案的拥有者属于同一个群体(group)者,o表示其他以外的人,a表示这三者皆是. + 表示增加权限.- 表示取消权限.= 表示唯一设定权限. r表示可读取,w表示可写入,x表示可执行.   举例说明: (1).将档案file1.txt 设为所有人皆可读取: chmo

Java压缩文件/目录成ZIP包最新技巧

使用java自带的类java.util.zip进行文件/目录的压缩的话,有一点不足,不支持中文的名件/目录命名,如果有中文名,那么打包就会失败.本人经过一段时间的摸索和实践,发现在一般的Ant.jar类库中也有zip类,import org.apache.tools.zip.*,能够解决不支持中文文件目录的问题,同时,Ant的获得途径也比较多,一般的应用服务器中有这个包,实在不行去下载个tomcat5.X,里面也有ant.jar,本人经过测试,可以使用. 例子如下: import java.io

linux:文件/目录权限设置

  一.权限修改命令: chmod [OPTION]... MODE[,MODE]... FILE... 二.文件/目录MODE指定方式: 1).八进制(r=4,w=2,x=1)[root@pinfun6 tmp]# ll filename -rwxrwxrwx 1 root root 0 Apr 15 14:37 filename [root@pinfun6 ~]# chmod 0755 filename [root@pinfun6 tmp]# ls -l filename -rwxr-xr-

visual studio-IIS发布网站未能写入输出文件...目录名称无效

问题描述 IIS发布网站未能写入输出文件...目录名称无效 VS里面运行是没问题的,但是发布到环境中,就报错如下: 百度过的方法如下: 以上方法均试过,还是不行.目录下没有这个dll,并且下载不到. 请教各位大神,如何处理.万分感谢 解决方案 解决方案:重新安装IIS 解决方案二: 紧急紧急,求助求助~~~ 解决方案三: CS0016: 未能写入输出文件--目录名无效CS0016: 未能写入输出文件--目录名无效网站 未能写入输出文件

Dart的文件、目录和链接(2)

创建文件 import 'dart:io'; main(List<String> arguments) { var systemTempDir = Directory.systemTemp; //在系统临时目录下创建两个目录一个文件 new File('${systemTempDir.path}/dir/subdir/file.txt').create(recursive: true) .then((file) { print(file.path); }); } 执行后看看系统临时目录下是否有

Nginx 防盗链(图片/文件/目录防盗链)

1.防盗链处理 通过REFERER判断  代码如下 复制代码 location ~ .*.(gif|jpg|jpeg|png|bmp|wma|mp3|swf)$ {       valid_referers none blocked server_names demo.hyzy120.com *.baidu.com:       if ($invalid_referer) {return 403;}     expires      30d; } #demo.hyzy120.com   允许的网