私の目標は、NodeJSのファイルシステムを使用して.asarファイルをコピーすることです。ファイルパスがあり、.asarファイルを別の宛先にコピーする必要があります。ファイルパスのNodeJSファイルシステム(fs)を使用したasarファイルのコピー
例:
C:/Users/redacted/Documents/ExampleElectronApp/example.asar
私は別のディレクトリにこのファイル(アーカイブ)をコピーする必要があります。
これはウォーク&コピー機能でコピーしましたが、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'));
それは、このファイルが見つからないと言うが、私はパスが.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.');
})
この機能は正しい「完了」メッセージを記録しますが、コピーがうまくいかなかったようです。コピー先のディレクトリに新しいファイルやフォルダは表示されません。
ありがとうございます。
Windowsディレクトリパスの区切り文字は '\'ですか。すべての '/'を '\\ 'で置き換えてみてください。あるいは 'fs.existsSync(yourPath)'を使ってNodeが実際にそれを見ることができるようにしてください。 'fs.readdir'を使ってフォルダのファイルをリストすることさえできます。 – Seblor
ファイルパスにスペースがありませんか? – paulsm4
パス文字列内のすべてのスペースの前に\をバックスラッシュします。私も\ /(スペースの他に\)と一緒にすべてを置き換えようとしましたが、これらのソリューションの両方が同じエラーを出すようになりました。 'fs.existsSync(" path ")を使うと、ソースパスを"パス "として使うときに' true'を返します。アーカイブ全体をコピーするための他の提案はありますか? –