溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Node.js文件系統(tǒng)fs擴(kuò)展fs-extra怎么使用

發(fā)布時(shí)間:2022-08-04 10:24:53 來(lái)源:億速云 閱讀:875 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“Node.js文件系統(tǒng)fs擴(kuò)展fs-extra怎么使用”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Node.js文件系統(tǒng)fs擴(kuò)展fs-extra怎么使用”吧!

fs-extra 是fs 的擴(kuò)展,繼承了 fs 所有方法并為這些方法添加了 promise 語(yǔ)法

安裝

npm i fs-extra

使用

const fse = require('fs-extra')

Async 方法

  • copy

  • emptyDir

  • ensureFile

  • ensureDir

  • ensureLink

  • ensureSymlink

  • mkdirp

  • mkdirs

  • move

  • outputFile

  • outputJson

  • pathExists

  • readJson

  • remove

  • writeJson

主要介紹異步的相關(guān)方法

方法

方法的具體使用,可以看官方文檔詳細(xì)介紹,這里只是簡(jiǎn)單介紹一下這些方法的使用和作用

copy()

copy(src:string, dest:string, [options:object, callback:function])

注意:src 如果是目錄,它將復(fù)制此目錄內(nèi)的所有內(nèi)容,而不是整個(gè)目錄本身;dest 注意的是 ,如果 src 是文件, dest 則不能是目錄

復(fù)制文件或目錄,目錄可以包含內(nèi)容

// 復(fù)制文件
fse.copy('old.txt', 'new.txt', err => {
  if (err) throw err
  console.log('success')
})
// 復(fù)制目錄,目錄可以包含內(nèi)容
fse.copy('utils', 'newutils', err => {
  if (err) throw err
  console.log('success')
})
// promise 
fse.copy('utils', 'newutils')
.then(() => {
    console.log('success')
})
.catch(err => {
    console.log(err)
})
// async/await
async function test () {
    try {
        await fse.copy('utils', 'newutils')
        console.log('success')
    } catch (err) {
        console.log(err)
    }
}
test()

emptyDir()

emptyDir(dir:string, [callback:function])

確保目錄為空,如果目錄不為空,則刪除目錄內(nèi)容。如果該目錄不存在,則創(chuàng)建該目錄。目錄本身不會(huì)被刪除

實(shí)例

fse.emptyDir('newutils', err => {
  if (err) throw err
  console.log('success')
})

ensureFile()

ensureFile(file:string, [callback:func])

確保文件存在,如果請(qǐng)求創(chuàng)建的文件位于不存在的目錄中,則會(huì)創(chuàng)建這些目錄。如果該文件已存在,則不進(jìn)行修改

實(shí)例

fse.ensureFile('newutils/seq.js', err => {
  if (err) throw err
  console.log('success')
})

ensureDir()

ensureDir(dir:string, [callback:func])

如果目錄結(jié)構(gòu)不存在,則創(chuàng)建它,如果目錄存在,則不進(jìn)行創(chuàng)建

等同于 mkdirs()、mkdirp()

實(shí)例

fse.ensureDir('newutil', err => {
  if (err) throw err
  console.log('success')
})

move()

move(src:string, dest:string, [options:object, callback:func])

移動(dòng)文件或目錄

實(shí)例

fse.move('newutils/seq.js', 'newutil/seq.js', err => {
  if (err) throw err
  console.log('success')
})

outputFile()

outputFile(file:string, data:string|Buffer|Uint8Array, [options:String|object, callback:func])

寫入文件數(shù)據(jù),如果父級(jí)目錄不存在,則創(chuàng)建它。file 必須是文件路徑,不允許使用緩沖區(qū)或文件描述符

實(shí)例

fse.outputFile('newutil/seq.js', 'hello, Node.js', err => {
  if (err) throw err
  console.log('success')
})

outputJson()

outputJson(file:string, object:object, [options:object, callback:func])

寫入JSON 文件 JSON 數(shù)據(jù),默認(rèn) w 模式,會(huì)覆蓋文件原有內(nèi)容;如果目錄不存在,會(huì)被創(chuàng)建

實(shí)例

fse.outputJson('newutil/seq.json', { name: 'duli' }, err => {
  if (err) throw err
  console.log('success')
})

writeJson()

writeJson(file, object, [options, callback])

將對(duì)象寫入 JSON 文件,幾乎與 outputJson 相同,除了必須保證目錄存在外

實(shí)例

fse.writeJSON('newutil/seq.json', { name: 'cc' }, err => {
  if (err) throw err
  console.log('success')
})

pathExists()

pathExists(file:string, [, callback:func])

檢查文件系統(tǒng)來(lái)測(cè)試給定路徑是否存在

實(shí)例

fse.pathExists('newutil/seq.js', (err, exists) => {
  if (err) throw err
  console.log(exists)
})

readJson()

readJson(file:string, [options:object, callback:func])

讀取 JSON 文件,然后將其解析為對(duì)象

實(shí)例

fse.readJson('newutil/seq.json', (err, obj) => {
  if (err) throw err
  console.log(obj)
  console.log(typeof obj)
})

remove()

remove(path:String, [callback:func])

刪除文件或目錄,該目錄可以包含內(nèi)容

實(shí)例

fse.remove('new.txt', err => {
  if (err) throw err
  console.log('success')
})

到此,相信大家對(duì)“Node.js文件系統(tǒng)fs擴(kuò)展fs-extra怎么使用”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI