1. 程式人生 > 其它 >Node常用模組之fs-extra

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()


宣告 歡迎轉載,但請保留文章原始出處:) 部落格園:https://www.cnblogs.com/chenxiaomeng/ 如出現轉載未宣告 將追究法律責任~謝謝合作