Node常用模块之fs-extra

项目地址:https://github.com/jprichardson/node-fs-extra

详细更多的用法可看:https://github.com/jprichardson/node-fs-extra

fs-extra模块是系统fs模块的扩展,提供了更多便利的 API,并继承了fs模块的 API

安装:

npm install --save-dev fs-extra

使用:

var fse = require('fs-extra')

API:

1. copy 复制文件

copy(src, dest, [option],callback)

option:

  • clobber (boolean): 覆盖现有的文件或目录,默认true
  • dereference (boolean): dereference symlinks, default is false
  • preserveTimestamps (boolean): 最后修改和访问时间和原始的源文件一致,默认为false
  • filter: 函数或正则表达式过滤复制文件,返回true包含,否则排除

同步:
copySync()

示例:

var fs = require('fs-extra');
fs.copy('/tmp/myfile', '/tmp/mynewfile', function (err) {
   if (err) return console.error(err); 
   console.log("success!")
}) //拷贝文件
fs.copy('/tmp/mydir', '/tmp/mynewdir', function (err) {
   if (err) return console.error(err) 
   console.log('success!')
}) //拷贝目录

2. emptyDir 清空目录

确保一个目录是空的。如果目录非空删除目录内容。如果目录不存在,就创建一个。目录本身并不是删除。

异步:
emptydir()
同步:
emptyDirSync(), emptydirSync()
示例:

var fs = require('fs-extra')
//假设这个目录下有很多文件和文件夹
fs.emptyDir('/tmp/some/dir', function (err) {
  if (!err) console.log('success!')
})

3. ensureFile 创建文件

确保文件存在。如果被请求的文件的目录不存在,创建这些目录。如果文件已经存在,它不修改。
异步:
createFile()
同步:
createFileSync(),ensureFileSync()
示例:

var fs = require('fs-extra');
var file = '/tmp/this/path/does/not/exist/file.txt';
fs.ensureFile(file, function (err) { 
   console.log(err) ;
})

4. ensureDir 创建目录

确保目录的存在。如果目录结构不存在,就创建一个。
**同步: **
ensureDirSync()
示例:

var fs = require('fs-extra');
var dir = '/tmp/this/path/does/not/exist';
fs.ensureDir(dir, function (err) {
   console.log(err);
})

5.检查文件是否存在

在fs模块中,可以使用exists方法检查一个文件或目录是否存在。

1.语法

fs.exists(path, callback)

var isexist = fs.existsSync( path )   //当文件或目录存在时,该值为true,当文件或目录不存在时,该值参数为false

2.参数

path:用于指定需要被检查的文件或目录的完整路径及文件名或目录名;

callback:用于指定检查文件或目录信息操作完毕时执行的回调函数,该回调函数的语法如下所示:

function(exists){ …… }

参数:

exists:当文件或目录存在时,该值为true,当文件或目录不存在时,该值参数为false。

var fs = require('fs');
fs.exists( './test.js',function(exists){
    if(exists){
        console.log("该文件存在!");
    }
    else{
        console.log("该文件不存在!");
    }
});

 

运用到cuncumber+webdriver.io中判断本地C盘下载是否有

Åndedrettssystemet.flipchart

某个文件

import assert from "assert"
const fs = require('fs-extra');
const file1 = 'C:/Users/admin/Downloads/Åndedrettssystemet.flipchart'

class DownloadResources {
    get operateResourceButton(){ return $$('.icon-round-more_vert-24px')[0]}
    get downloadResourceButton(){ return $$('.ant-dropdown-menu-item')[0]}
    get downloadFlipResourceButton(){ return $$('.ant-dropdown-menu-item')[1]}
    downloadFirstResource(keyword){
        this.operateResourceButton.click()
        if (keyword=='Flipcharts'){
            this.downloadFlipResourceButton.click()
        }else{
            this.downloadResourceButton.click()
        }
    }

    verifyFirstResourceHasDownload(){
        fs.pathExists(file).then((exists)=>console.log(exists)).catch((e)=>console.log(e));
    }
}
export default new DownloadResources()

 



posted @ 2022-02-25 12:09  陈晓猛  阅读(1788)  评论(0编辑  收藏  举报