gpt4 book ai didi

javascript - 麻烦 - Node js 将文件从文件夹 x 移动到文件夹 y

转载 作者:行者123 更新时间:2023-12-03 08:21:46 25 4
gpt4 key购买 nike

我正在尝试使用node.js将文件从文件夹currentFolder(项目的根)/node_modules/mime/移动到currentFolder(项目的根)/files/ 但我不断收到此错误:

events.js:85
throw er; // Unhandled 'error' event
^
Error: EISDIR, open 'files/'
at Error (native)

这是我到目前为止所拥有的。目前它正在做的是循环遍历我指定的目录中的每个文件夹,并打印出所读取的每个文件夹的文件类型。但我在移动文件时遇到问题,我不断收到上面指定的错误。我当前的代码如下 -

var mime = require('mime');
var fs = require('fs');
var dest = fs.createWriteStream('files/');
var source;
var i = 0;

// General function - Loop through files in directory X and COPY AND PASTE FILES FROM X to Y
var dive = function (dir, action) {
// Assert that it's a function
if (typeof action !== "function")
action = function (error, file) { };

// Read the directory
fs.readdir(dir, function (err, list) {
// Return the error if something went wrong
if (err)
return action(err);


// Loop through file in list
list.forEach(function (file) {
console.log(mime.lookup(dir + "/" + file));

// Full path of that file
path = dir + "/" + file;
source = fs.createReadStream(path);
source.pipe(dest + '/'+i);
console.log("Moved");
i++;

source.on('end', function() { /* copied */ });
source.on('error', function(err) { /* error */ });

});
});
};

dive("node_modules/mime");

最佳答案

您可以在文件(而不是目录)上createWriteStream。每个目标文件都需要单独的流。

所以代替这个:

  source = fs.createReadStream(path);
source.pipe(dest + '/'+i);

你需要这个:

  source = fs.createReadStream(path);
var destFile = fs.createWriteStream('files/'+i);
source.pipe(destFile);

关于javascript - 麻烦 - Node js 将文件从文件夹 x 移动到文件夹 y,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33718544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com