📜  Node.js fs.ftruncate() 方法(1)

📅  最后修改于: 2023-12-03 15:33:08.932000             🧑  作者: Mango

Node.js fs.ftruncate() 方法

简介

fs.ftruncate() 方法用于截断打开的文件描述符,即将该文件变为指定长度。

此方法引用自 fs.truncate() 方法,二者区别在于 fs.ftruncate() 接收文件描述符作为第一个参数,而 fs.truncate() 接收路径作为第一个参数。

语法

fs.ftruncate(fd, len, callback)

  • fd - 文件描述符。
  • len - 文件长度,单位为字节。
  • callback - 回调函数,带有 (err) 参数。
返回值

没有返回值。如果出错,则将 err 传递给回调函数。

示例
const fs = require('fs')
const getFilesizeInBytes = (filename) => {
  const stats = fs.statSync(filename)
  const fileSizeInBytes = stats.size
  return fileSizeInBytes
}
const file = 'example.txt'
const fd = fs.openSync(file, 'r+')
const fileSize = getFilesizeInBytes(file)
console.log('原始文件的大小:', fileSize, '字节')
fs.ftruncate(fd, 5, (err) => {
  if (err) throw err
  console.log(`截断 '${file}' 文件为 5 字节`)
  console.log('截断后文件的大小:', getFilesizeInBytes(file), '字节')
})

上述例子中,我们使用 fs.openSync() 方法获取文件描述符,将其作为第一个参数传递给 fs.ftruncate() 方法。在回调函数内,我们根据是否出错,打印信息和文件大小。

总结

fs.ftruncate() 方法用于截断打开的文件描述符,是对 fs.truncate() 方法的补充补充。需要注意的是,此方法会覆盖文件的原始内容,请谨慎使用。