将源文件复制到 Nodejs 中的另一个目的地
Copy a source file to another destination in Nodejs
我正在尝试使用 fs-extra 模块将图像从一个文件夹复制到另一个文件夹。
var fse = require('fs-extra');
function copyimage() {
fse.copy('mainisp.jpg', './test', function (err) {
if (err)
return console.error(err)
});
}
这是我的目录
这是我一直遇到的错误:
Error {errno: -4058, code: "ENOENT", syscall: "lstat", path:
"E:\mainisp.jpg", message: "ENOENT: no such file or directory, lstat
'E:\mainisp.jpg'"}
然后将目的地更改为 ./test/
我收到此错误
Error {errno: -4058, code: "ENOENT", syscall: "lstat", path:
"E:\Development\Node apps\Node softwares\Digital_library\mainisp.jpg",
message: "ENOENT: no such file or directory, lstat 'E:\Devel…
apps\Node softwares\Digital_library\mainisp.jpg'"}
注意:我没有在浏览器中对此进行测试。这是一个 Nwjs 应用程序,所附的错误图片来自 Nwjs 控制台。
尝试:
var fs = require('fs-extra');
fs.copySync(path.resolve(__dirname,'./mainisp.jpg'), './test/mainisp.jpg');
正如您在错误消息中看到的,您正在尝试从 E:\mainisp.jpg
而不是当前目录读取文件。
您还需要指定文件的目标路径,而不仅仅是目标文件夹。
您可以使用本机 fs
模块轻松地使用流来执行此操作。
const fs = require('fs');
const path = require('path');
let filename = 'mainisp.jpg';
let src = path.join(__dirname, filename);
let destDir = path.join(__dirname, 'test');
fs.access(destDir, (err) => {
if(err)
fs.mkdirSync(destDir);
copyFile(src, path.join(destDir, filename));
});
function copyFile(src, dest) {
let readStream = fs.createReadStream(src);
readStream.once('error', (err) => {
console.log(err);
});
readStream.once('end', () => {
console.log('done copying');
});
readStream.pipe(fs.createWriteStream(dest));
}
尝试:
const fs = require('fs');
fs.copyFileSync(src, dest);
我正在尝试使用 fs-extra 模块将图像从一个文件夹复制到另一个文件夹。
var fse = require('fs-extra');
function copyimage() {
fse.copy('mainisp.jpg', './test', function (err) {
if (err)
return console.error(err)
});
}
这是我的目录
这是我一直遇到的错误:
Error {errno: -4058, code: "ENOENT", syscall: "lstat", path: "E:\mainisp.jpg", message: "ENOENT: no such file or directory, lstat 'E:\mainisp.jpg'"}
然后将目的地更改为 ./test/
我收到此错误
Error {errno: -4058, code: "ENOENT", syscall: "lstat", path: "E:\Development\Node apps\Node softwares\Digital_library\mainisp.jpg", message: "ENOENT: no such file or directory, lstat 'E:\Devel… apps\Node softwares\Digital_library\mainisp.jpg'"}
注意:我没有在浏览器中对此进行测试。这是一个 Nwjs 应用程序,所附的错误图片来自 Nwjs 控制台。
尝试:
var fs = require('fs-extra');
fs.copySync(path.resolve(__dirname,'./mainisp.jpg'), './test/mainisp.jpg');
正如您在错误消息中看到的,您正在尝试从 E:\mainisp.jpg
而不是当前目录读取文件。
您还需要指定文件的目标路径,而不仅仅是目标文件夹。
您可以使用本机 fs
模块轻松地使用流来执行此操作。
const fs = require('fs');
const path = require('path');
let filename = 'mainisp.jpg';
let src = path.join(__dirname, filename);
let destDir = path.join(__dirname, 'test');
fs.access(destDir, (err) => {
if(err)
fs.mkdirSync(destDir);
copyFile(src, path.join(destDir, filename));
});
function copyFile(src, dest) {
let readStream = fs.createReadStream(src);
readStream.once('error', (err) => {
console.log(err);
});
readStream.once('end', () => {
console.log('done copying');
});
readStream.pipe(fs.createWriteStream(dest));
}
尝试:
const fs = require('fs');
fs.copyFileSync(src, dest);