011 nodejs服務端:使用FS模塊對文件重命名、文件複製、文件移動

nodejs服務端:文件重命名、文件複製、文件移動

在nodejs服務端對文件進行操作一般都使用到fs模塊,今天我也在項目中使用到了,之前一直沒機會寫文檔,現在我做一個小總結!

安裝必要模塊

npm i fs -s

文件重命名demo

var fs = require('fs')
fs.rename(`upload/${file.filename}`, `upload/${newname}`, (err) => {
        if (err) {
          console.log('err:' + err);
        } else {
          console.log('修改文件名成功');
        }
});

文件拷貝demo

var floder_path = 'one'
      if (order.print_type != '黑白A4單面') {
        floder_path = 'two'
      }
      if (order.print_num > 1) {
        for (var i = 1; i <= order.print_num; i++) {
          fs.copyFile(`upload/${newname}`, `upload/${floder_path}/第${i}份-共${order.print_num}份-${newname}`, function (err) {
            if (err) console.log('something wrong was happened')
            else console.log('copy file succeed');
          })
        }
      } else {
        fs.copyFile(`upload/${newname}`, `upload/${floder_path}/${newname}`, function (err) {
          if (err) console.log('something wrong was happened')
          else console.log('copy file succeed');
        })
      }

以上是從我的項目中截取的兩個代碼片段,官方給出的用法如下:

FS模塊用法

fs.rename(oldPath, newPath, callback)

異步地將 oldPath 上的文件重命名爲 newPath 提供的路徑名。 如果 newPath 已存在,則覆蓋它。 除了可能的異常,完成回調沒有其他參數。

fs.rename('舊文件.txt', '新文件.txt', (err) => {
  if (err) throw err;
  console.log('重命名完成');
});

fs.copyFile(src, dest[, flags], callback)

異步地將 src 拷貝到 dest。 默認情況下,如果 dest 已經存在,則覆蓋它。 除了可能的異常,回調函數沒有其他參數。 Node.js 不保證拷貝操作的原子性。 如果在打開目標文件用於寫入後發生錯誤,則 Node.js 將嘗試刪除目標文件。
flags 是一個可選的整數,指定拷貝操作的行爲。 可以創建由兩個或更多個值按位或組成的掩碼(比如 fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE)。

  • fs.constants.COPYFILE_EXCL - 如果 dest 已存在,則拷貝操作將失敗。
  • fs.constants.COPYFILE_FICLONE -
    拷貝操作將嘗試創建寫時拷貝(copy-on-write)鏈接。如果平臺不支持寫時拷貝,則使用後備的拷貝機制。
  • fs.constants.COPYFILE_FICLONE_FORCE -
    拷貝操作將嘗試創建寫時拷貝鏈接。如果平臺不支持寫時拷貝,則拷貝操作將失敗。
const fs = require('fs');

// 默認情況下將創建或覆蓋目標文件。
fs.copyFile('源文件.txt', '目標文件.txt', (err) => {
  if (err) throw err;
  console.log('源文件已拷貝到目標文件');
});

如果第三個參數是數字,則它指定 flags:

const fs = require('fs');
const { COPYFILE_EXCL } = fs.constants;

// 通過使用 COPYFILE_EXCL,如果目標文件存在,則操作將失敗。
fs.copyFile('源文件.txt', '目標文件.txt', COPYFILE_EXCL, callback);

fs.copyFile Node.js中文網

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章