Dart的路径操作

路径连接

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

Dart的路径操作的相关文章

C#文件路径操作总结

一.获取当前文件的路径 1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName 获取模块的完整路径,包括文件名. 2. System.Environment.CurrentDirectory 获取和设置当前目录(该进程从中启动的目录)的完全限定目录. 3. System.IO.Directory.GetCurrentDirectory() 获取应用程序的当前工作目录.这个不一定是程序从中启动的目录啊,有可能程序放

python文件和路径操作

1: os.listdir(path) //path为目录 功能相当于在path目录下执行dir命令,返回为list类型print os.listdir('..') 2: os.path.walk(path,visit,arg) path :是将要遍历的目录visit :是一个函数指针,函数圆形为:callback(arg,dir,fileList)其中arg为为传给walk的arg , dir是path下的一个目录,fileList为dir下的文件和目录组成的list, arg:传给visit

Boost学习之可移植路径操作--filesystem

Boost.Filesystem 库为对路径.文件和目录进行查询和操作提供了可移植的工具,已经被C++标准委员会接纳包含到TR2中. 编译 使用Boost.Filesystem 库之前要先编译它,请参考<Boost的编译> 头文件 #include <boost/filesystem.hpp> 所有Boost.Filesystem库的内容都处于名空间boost::filesystem之内. 认识basic_path类 在Boost.Filesystem库里basic_path是最重

linux获取shell脚本所在绝对路径操作介绍

  脚本名:a.sh 位置:/tmp/whuang/study/java 脚本内容: 代码如下: #!/bin/sh this_dir=`pwd` dirname $0|grep "^/" >/dev/null if [ $? -eq 0 ];then this_dir=`dirname $0` else dirname $0|grep "^." >/dev/null retval=$? if [ $retval -eq 0 ];then this_di

Dart的数据库操作

连接数据库 Dart连接数据库需要先从Pub下载sqljocky包 我新建了一个数据库,内容如下 连接数据库的代码如下 import 'package:sqljocky/sqljocky.dart'; main(List<String> arguments) { //创建一个连接池,host:连接地址,port:端口,user:用户名,password:密码,db:数据库名,max:最大并发数 var pool = new ConnectionPool(host: 'localhost',po

Node.js路径操作实例详解

path.normalize(path) path.normalize(path) 参数值为需要被转换的路径字符串. 该方法将非标准路径字符串转换为标准路径字符串,在转换过程中执行以下处理: 1) 解析路径字符串中的".."字符串与"."字符串,返回解析后的标准路径: 2) 将多个斜杠字符串转换为一个斜杠字符串,例如将"\\"转换为"\": 3) 将Windows操作系统中的反斜杠字符串转换为正斜杠字符串: 4) 如果路径字符

Fireworks 组合路径功能小解

  Fireworks的特点之一就是直接绘制矢量路径,其中除了可以直接运用矢量工具(钢笔.矩形及其他几何形状)绘制矢量路径外,最常用的就是运用组合路径功能对多个路径进行接合.拆分.联合.打孔.交集.裁切.组合路径功能运用得当,可以使对路径的操作事半功倍.这里对组合路径功能简单说明下使用方法及具体应用. 这里所使用的命令中,除接合与拆分在修改工具栏有对应按钮外,所有命令均在修改菜单--组合路径子菜单中,下面不再赘述. 接合与拆分 接合可以将多个路径结合在一起,但不同于联合与群组,这里把这三者先区分

Python常用的文件及文件路径、目录操作方法汇总介绍

  这篇文章主要介绍了Python常用的文件及文件路径.目录操作方法汇总介绍,本文集合了最常用的一些文件和目录操作函数,并一一介绍它们的作用,需要的朋友可以参考下 python的文件和路径操作函数基本上位于os和os.path模块中. os.listdir(dirname):列出dirname下的目录和文件 os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false os.path.isfile(name):判断name是不是一个文件,不存在name也返

photoshop路径工具勾图、去底的方法技巧

技巧 路径工具( 钢笔工具)在PhotoShop中运用非常广泛,退底.勾形等等都少不了它.可许多人对它很难上手,初学者容易勾断线,而入门后也常为多次修改也勾不准而烦恼.现在我们就以一个实例介绍一下路径工具和退底的一些小技巧 一.勾图退底的"规范"动作: 这是原图,本例的目的就是用路径工具把"互联时代"四个字退底"挖"出来. 先选择路径工具(P),起第一点时,拖出一个较短的手柄,接下来画第二点,也拖出短手柄,此时,按住Ctrl键不动,用白箭头调整接