当前位置:首页 > JavaScript

js实现重命名

2026-04-07 15:11:20JavaScript

使用 fs 模块重命名文件或目录

在 Node.js 中,可以使用内置的 fs 模块来实现文件或目录的重命名操作。fs.rename() 方法是同步和异步两种方式的主要选择。

异步重命名示例:

const fs = require('fs');

fs.rename('oldFile.txt', 'newFile.txt', (err) => {
  if (err) throw err;
  console.log('重命名完成');
});

同步重命名示例:

js实现重命名

const fs = require('fs');

try {
  fs.renameSync('oldDir', 'newDir');
  console.log('重命名完成');
} catch (err) {
  console.error(err);
}

使用 promises API 重命名

Node.js 也提供了基于 Promise 的文件系统 API:

const fs = require('fs').promises;

async function renameFile() {
  try {
    await fs.rename('old.txt', 'new.txt');
    console.log('重命名成功');
  } catch (error) {
    console.error('重命名失败:', error);
  }
}

renameFile();

检查文件是否存在后再重命名

在重命名前可以先检查文件是否存在以避免错误:

js实现重命名

const fs = require('fs');

fs.access('oldFile.txt', fs.constants.F_OK, (err) => {
  if (err) {
    console.error('文件不存在');
    return;
  }

  fs.rename('oldFile.txt', 'newFile.txt', (err) => {
    if (err) throw err;
    console.log('重命名完成');
  });
});

跨设备移动文件

当需要在不同设备或分区移动文件时,常规的重命名操作可能失败。这时需要先复制文件再删除原文件:

const fs = require('fs');

function moveFile(source, target) {
  return new Promise((resolve, reject) => {
    fs.copyFile(source, target, (err) => {
      if (err) return reject(err);
      fs.unlink(source, (err) => {
        if (err) return reject(err);
        resolve();
      });
    });
  });
}

moveFile('source.txt', 'target.txt')
  .then(() => console.log('移动完成'))
  .catch(console.error);

批量重命名文件

以下是一个批量重命名目录中文件的示例:

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

const directory = './files';
const prefix = 'new_';

fs.readdir(directory, (err, files) => {
  if (err) throw err;

  files.forEach(file => {
    const oldPath = path.join(directory, file);
    const newPath = path.join(directory, prefix + file);

    fs.rename(oldPath, newPath, err => {
      if (err) console.error(`重命名 ${file} 失败`, err);
      else console.log(`重命名 ${file} 成功`);
    });
  });
});

注意事项

重命名操作在不同操作系统上可能有不同限制。Windows 系统对某些字符(如 :, ", <, >, | 等)在文件名中的使用有限制,而 Linux/MacOS 系统则相对宽松。

重命名目录时,需要确保目录不是当前工作目录,否则可能导致操作失败或意外结果。

标签: 重命名js
分享给朋友:

相关文章

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含inpu…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…

js图片轮播的实现

js图片轮播的实现

基础图片轮播实现 使用HTML、CSS和JavaScript实现一个简单的图片轮播效果。HTML部分定义轮播容器和图片,CSS负责样式和过渡效果,JavaScript处理逻辑。 <div cl…

js实现文件夹

js实现文件夹

使用JavaScript创建文件夹 在浏览器端的JavaScript中无法直接操作文件系统创建文件夹,这是出于安全考虑。但在Node.js环境中可以通过文件系统模块(fs)实现。 Node.js中使…