为什么我得到错误的操作不允许复制文件从一个文件夹到另一个文件夹使用nodejs?



我正在尝试将所有文件从一个文件夹复制到目标文件夹。我还导入了fs径>包中的代码。此外,我已经从文件夹及其文件的属性中删除了只读选项tick。但是仍然得到下面最后一个错误。如何解决这个错误?这是我的代码:

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 folderNew Text Document (1).txt' -> 'D:/New folder (2)'
at Object.copyFileSync (fs.js:1991:3)
at C:UsersemDesktopinfluencememecache.js:171:23
at Array.forEach (<anonymous>)
at sync (C:UsersemDesktopinfluencememecache.js:165:18)
at Object.<anonymous> (C:UsersemDesktopinfluencememecache.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)'
}

copyFileSync(curSource, targetFolder + file);

相关内容

最新更新