为啥我收到错误,因为不允许使用 nodejs 将文件从一个文件夹复制到另一个文件夹?
Posted
技术标签:
【中文标题】为啥我收到错误,因为不允许使用 nodejs 将文件从一个文件夹复制到另一个文件夹?【英文标题】:Why I am getting error as operation not permitted for copying files from one folder to another folder using nodejs?为什么我收到错误,因为不允许使用 nodejs 将文件从一个文件夹复制到另一个文件夹? 【发布时间】:2021-06-02 02:21:39 【问题描述】:我正在尝试将所有文件从文件夹复制到目标文件夹。我还在代码中导入了 fs 和 path 包。此外,我还分别从文件夹及其文件的属性中删除了只读选项刻度。但仍然得到以下最后一个错误。我该如何解决这个错误? 这是我的代码:
function sync(source, destination)
var files = [];
//var targetFolder = path.join( destination, path.basename( source ) );
var targetFolder = destination;
if ( !fs.existsSync( targetFolder ) )
fs.mkdirSync( targetFolder );
// Copy
if ( fs.lstatSync( source ).isDirectory() )
files = fs.readdirSync( source );
files.forEach( function ( file )
var curSource = path.join( source, file );
if ( fs.lstatSync( curSource ).isDirectory() )
fs.copyFolderRecursiveSync( curSource, targetFolder );
else
fs.copyFileSync( curSource, targetFolder );
);
;
这就是我传递源参数和目标参数的方式:
sync('D:/New folder', 'D:/New folder (2)');
但我收到此错误:
calling
internal/fs/utils.js:307
throw err;
^
Error: EPERM: operation not permitted, copyfile 'D:\New folder\New Text Document (1).txt' -> 'D:/New folder (2)'
at Object.copyFileSync (fs.js:1991:3)
at C:\Users\em\Desktop\influence\memecache.js:171:23
at Array.forEach (<anonymous>)
at sync (C:\Users\em\Desktop\influence\memecache.js:165:18)
at Object.<anonymous> (C:\Users\em\Desktop\influence\memecache.js:151:3)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
errno: -4048,
syscall: 'copyfile',
code: 'EPERM',
path: 'D:\\New folder\\New Text Document (1).txt',
dest: 'D:/New folder (2)'
【问题讨论】:
【参考方案1】:fs.copyFileSync(curSource, targetFolder + file);
【讨论】:
以上是关于为啥我收到错误,因为不允许使用 nodejs 将文件从一个文件夹复制到另一个文件夹?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我在 Nodejs 中收到“无法在将标头发送到客户端后设置标头”错误?
为啥我收到此错误 - 错误:EPERM:不允许操作,找不到 mkdir 'C:\Users\Aniket' 命令:create-react-app