Làm việc với các thư mục trong Node

Cách tương tác với các thư mục bằng Node

Node.jsfsmô-đun lõi cung cấp nhiều phương pháp tiện dụng mà bạn có thể sử dụng để làm việc với các thư mục.

Kiểm tra xem thư mục có tồn tại không

Sử dụngfs.access()để kiểm tra xem thư mục có tồn tại hay không và Node có thể truy cập nó bằng quyền của nó.

Tạo một thư mục mới

Sử dụngfs.mkdir()hoặc làfs.mkdirSync()để tạo một thư mục mới.

const fs = require('fs')

const folderName = ‘/Users/flavio/test’

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

Đọc nội dung của một thư mục

Sử dụngfs.readdir()hoặc làfs.readdirSyncđể đọc nội dung của một thư mục.

Đoạn mã này đọc nội dung của một thư mục, cả tệp và thư mục con và trả về đường dẫn tương đối của chúng:

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

const folderPath = ‘/Users/flavio’

fs.readdirSync(folderPath)

Bạn có thể nhận được đường dẫn đầy đủ:

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

Bạn cũng có thể lọc kết quả để chỉ trả lại các tệp và loại trừ các thư mục:

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

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

Đổi tên một thư mục

Sử dụngfs.rename()hoặc làfs.renameSync()để đổi tên thư mục. Tham số đầu tiên là đường dẫn hiện tại, tham số thứ hai là đường dẫn mới:

const fs = require('fs')

fs.rename(’/Users/flavio’, ‘/Users/roger’, err => { if (err) { console.error(err) return } //done })

fs.renameSync()là phiên bản đồng bộ:

const fs = require('fs')

try { fs.renameSync(’/Users/flavio’, ‘/Users/roger’) } catch (err) { console.error(err) }

Xóa một thư mục

Sử dụngfs.rmdir()hoặc làfs.rmdirSync()để xóa một thư mục.

Xóa một thư mục có nội dung có thể phức tạp hơn bạn cần.

Trong trường hợp này, tôi khuyên bạn nên cài đặtfs-extramô-đun này rất phổ biến và được bảo trì tốt, và nó là một phần thay thế chofs, cung cấp nhiều tính năng hơn.

Trong trường hợp này,remove()phương pháp là những gì bạn muốn.

Cài đặt nó bằng cách sử dụng

npm install fs-extra

và sử dụng nó như thế này:

const fs = require('fs-extra')

const folder = ‘/Users/flavio’

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

Nó cũng có thể được sử dụng với các lời hứa:

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

hoặc với async / await:

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

const folder = ‘/Users/flavio’ removeFolder(folder)

Tải xuống miễn phí của tôiSổ tay Node.js


Các hướng dẫn nút khác: