为啥我收到错误,因为不允许使用 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 【问题描述】:

我正在尝试将所有文​​件从文件夹复制到目标文件夹。我还在代码中导入了 fspath 包。此外,我还分别从文件夹及其文件的属性中删除了只读选项刻度。但仍然得到以下最后一个错误。我该如何解决这个错误? 这是我的代码:

 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

即使我允许所有来源,为啥我会收到 CORS 错误?

为啥 OpenMP 不允许使用 != 运算符?

为啥 MySQL 给出错误“不允许从函数返回结果集”?

如果 Sql Compact 允许多个连接,为啥我会收到文件共享错误?