gpt4 book ai didi

javascript - copyFileSync不复制文件也不抛出错误

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

我正在运行一个用nodejs/Electron客户端中的JavaScript编写的函数。

此功能旨在将文件从用户闪存驱动器复制到他们的c:/Windows/System32(文件被复制到此处,以便下次触摸计算机时可以从命令提示符下手动运行该文件,而无需切换目录)

问题是,文件没有被复制,并且copyFileSync没有引发错误。

这是我特别有问题的代码:

try {
console.log('copying t.bat');
fs.copyFileSync(remote.app.getAppPath() + '\\app\\files\\scripts\\files\\t.bat', 'C:\\Windows\\System32\\t.bat');
} catch(err) {

console.log('could not copy t.bat', err);

$('#mfail_title').text('Could not copy t.bat file');
$('#mfail_data').text(err);

UIkit.modal("#master_fail").show();

return false;
}

如您所见,我在 copyFileSync块中有 TRY CATCH。我知道这段代码正在运行,因为在控制台中,我得到了 copying t.bat,但除此之外没有别的。

我该如何复制文件,或者至少在无法复制时抛出错误?

该客户端在各种Windows 10计算机上的OOBE模式下运行,因此始终具有管理员访问权限。

我尝试过更新到copyFile的异步版本,但是遇到了同样的问题。这是我的代码
var source = remote.app.getAppPath() + '\\app\\files\\scripts\\files\\t.bat';
var destination = 'C:\\Windows\\System32\\t.bat';

fs.copyFile(source, destination, (err) => {
if (err) {
console.log(err);
} else {

source = remote.app.getAppPath() + '\\app\\files\\scripts\\files\\p.bat';
destination = 'C:\\Windows\\System32\\p.bat';

fs.copyFile(source, destination, (err) => {
if (err) {
console.log(err);
} else {

source = remote.app.getAppPath() + '\\app\\files\\scripts\\files\\p.bat';
destination = 'C:\\Windows\\System32\\p.bat';

child = spawn("powershell.exe",['-ExecutionPolicy', 'ByPass', '-File', remote.app.getAppPath() + '\\app\\files\\scripts\\' + type + '.ps1']);

}
});

}
});

这应该复制一个文件,然后在完成后应复制另一个文件,完成后应运行一个powershell脚本。

每个copyFile在继续操作之前都会检查是否有错误,但绝不会抛出错误,并且永远不会复制该文件。

最佳答案

我之前有一个类似的问题,其中防病毒(Comodo)不允许 Electron 应用程序访问硬盘驱动器。

在这种情况下,复制和其他文件操作也同样成功,因为在这种情况下, Electron 可以访问相应的沙箱

请检查您是否遇到这种情况。

您实际上可以从 Electron 设备在控制台中访问“fs”,并检查文件系统中的其他内容。

关于javascript - copyFileSync不复制文件也不抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56836711/

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