我的目标是使用 NodeJS 的文件系统复制 .asar 文件。我有一个文件路径,需要将 .asar 文件复制到另一个目的地。
文件路径示例:
C:/Users/redacted/Documents/ExampleElectronApp/example.asar
Run Code Online (Sandbox Code Playgroud)
我需要将此文件(存档)复制到另一个目录。
以前我使用步行和复制功能复制了它,但它最终创建了一个名为 filename.asar 的目录,而不是名为 filename.asar 的实际文件。此功能似乎可以正确地处理所有其他文件和文件夹(.asar 存档除外)。
我尝试过的
1:使用读写流复制存档。
var fs = require('fs');
fs.createReadStream('C:/Users/redacted/Documents/redacted/node_modules/electron-prebuilt/dist/resources/default_app.asar').pipe(fs.createWriteStream('C:/Users/redacted/Desktop/test.asar'));
Run Code Online (Sandbox Code Playgroud)
它说找不到此文件,但我可以向您保证,复制源路径确实会引导我找到 .asar 文件。
2:使用asar需求创建包。
var fs = require('fs');
var asar = require('asar');
asar.createPackage('C:/Users/redacted/Documents/redacted/node_modules/electron-prebuilt/dist/resources/default_app.asar', 'C:/Users/redacted/Desktop/test.asar', function() {
console.log('done.');
})
Run Code Online (Sandbox Code Playgroud)
虽然此函数确实记录了正确的“完成”消息,但复制似乎不成功。目标目录中不显示新文件或文件夹。
谢谢大家。
小智 5
也许你可以在 fs 模块中禁用对 asar 的支持,如下所示:
process.noAsar = true
Run Code Online (Sandbox Code Playgroud)
这是文档:https://electronjs.org/docs/tutorial/application-packaging#treating-an-asar-archive-as-a-normal-file
| 归档时间: |
|
| 查看次数: |
1856 次 |
| 最近记录: |