1. 程式人生 > 實用技巧 >nodejs.cn-Node.js-入門教程:在 Node.js 中使用資料夾

nodejs.cn-Node.js-入門教程:在 Node.js 中使用資料夾

ylbtech-nodejs.cn-Node.js-入門教程:在 Node.js 中使用資料夾

1.返回頂部
1、

在 Node.js 中使用資料夾

目錄

Node.js 的fs核心模組提供了許多便捷的方法用於處理資料夾。

檢查資料夾是否存在

使用fs.access()檢查資料夾是否存在以及 Node.js 是否具有訪問許可權。

建立新的資料夾

使用fs.mkdir()fs.mkdirSync()可以建立新的資料夾。

const fs = require('fs')

const folderName = '/Users/joe/test'

try {
  if (!fs.existsSync(folderName)) {
    fs.mkdirSync(folderName)
  }
} catch (err) {
  console.error(err)
}

讀取目錄的內容

使用fs.readdir()fs.readdirSync()可以讀取目錄的內容。

這段程式碼會讀取資料夾的內容(全部的檔案和子資料夾),並返回它們的相對路徑:

const fs = require('fs')
const path = require('path')

const folderPath = '/Users/joe'

fs.readdirSync(folderPath)

可以獲取完整的路徑:

fs.readdirSync(folderPath).map(fileName => {
  return path.join(folderPath, fileName)
})

也可以過濾結果以僅返回檔案(排除資料夾):

const isFile = fileName => {
  return fs.lstatSync(fileName).isFile()
}

fs.readdirSync(folderPath).map(fileName => {
  return path.join(folderPath, fileName)
})
.filter(isFile)

重新命名資料夾

使用fs.rename()fs.renameSync()可以重新命名資料夾。 第一個引數是當前的路徑,第二個引數是新的路徑:

const fs = require('fs')

fs.rename('/Users/joe', '/Users/roger', err => {
  if (err) {
    console.error(err)
    return
  }
  //完成
})

fs.renameSync()是同步的版本:

const fs = require('fs')

try {
  fs.renameSync('/Users/joe', '/Users/roger')
} catch (err) {
  console.error(err)
}

刪除資料夾

使用fs.rmdir()fs.rmdirSync()可以刪除資料夾。

刪除包含內容的資料夾可能會更復雜。

在這種情況下,最好安裝fs-extra模組,該模組非常受歡迎且維護良好。 它是fs模組的直接替代品,在其之上提供了更多的功能。

在此示例中,需要的是remove()方法。

使用以下命令安裝:

npm install fs-extra

並像這樣使用它:

const fs = require('fs-extra')

const folder = '/Users/joe'

fs.remove(folder, err => {
  console.error(err)
})

也可以與 promise 一起使用:

fs.remove(folder)
  .then(() => {
    //完成
  })
  .catch(err => {
    console.error(err)
  })

或使用 async/await:

async function removeFolder(folder) {
  try {
    await fs.remove(folder)
    //完成
  } catch (err) {
    console.error(err)
  }
}

const folder = '/Users/joe'
removeFolder(folder)
2、
2.返回頂部
3.返回頂部
4.返回頂部
5.返回頂部
1、 http://nodejs.cn/learn/working-with-folders-in-nodejs 2、
6.返回頂部
作者:ylbtech
出處:http://ylbtech.cnblogs.com/
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。