Node.js 提供了 fs 模块来操作文件系统,可以利用 fs 模块的 API 来复制文件/文件夹。
复制文件的实现:
const fs = require('fs');
function copyFile(src, dest) {
fs.copyFile(src, dest, (err) => {
if (err) {
console.error('Error copying file:', err);
} else {
console.log(`${src} was copied to ${dest}`);
}
});
}
copyFile('./test.txt', './new-test.txt');
fs.copyFile()
方法可以将一个文件复制到另一个位置。- 第一个参数是要复制的源文件路径。
- 第二个参数是要复制到的目标文件路径。
- 第三个参数是一个回调函数,用于处理复制文件的结果。
复制文件夹的实现:
const fs = require('fs');
const path = require('path');
function copyDir(src, dest) {
fs.mkdirSync(dest);
const files = fs.readdirSync(src);
for (let file of files) {
const srcPath = path.join(src, file);
const destPath = path.join(dest, file);
const stat = fs.statSync(srcPath);
if (stat.isDirectory()) {
copyDir(srcPath, destPath);
} else {
copyFile(srcPath, destPath);
}
}
}
function copyFile(src, dest) {
fs.copyFileSync(src, dest);
console.log(`${src} was copied to ${dest}`);
}
copyDir('./test-dir', './new-dir');
fs.mkdirSync()
方法可以创建一个新目录。fs.readdirSync()
方法可以读取一个目录下的文件列表。path.join()
方法可以将多个路径字符串连接起来。fs.statSync()
方法可以获取一个文件或目录的状态信息。- 如果目标是一个子目录,则递归调用
copyDir()
函数。 - 如果目标是一个文件,则调用
copyFile()
函数。