項目地址: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()