J'ai une application portable Electron (emballée avec: électron-builder + asar, version portable) sous Windows. J'essaie d'obtenir le chemin de l'application, mais il renvoie un chemin dans le dossier utilisateur\temp plutôt que dans le fichier '.exe'.
Est-il possible d'obtenir le chemin d'accès original app.exe?
J'ai essayé ce qui suit:
Le chemin que je tire de mes tests:
C:\Utilisateurs\xxx\AppData\Local\Temp\xxxxxx.tmp\app
le chemin d'accès .exe actuel (d'où l'application a été lancée et ce dont j'ai besoin):
C:\Utilisateurs\XXX\Documents\test\dist
Je commence juste avec Electron.
J'ai trouvé une solution: Utiliser la variable d'environnement (créée par Electron-Builder)
process.env.PORTABLE_EXECUTABLE_DIR
pour afficher le chemin réel de l'App.exe. Fonctionne uniquement avec Electron-Builder
Du processus principal:
// If not already defined...
const { app } = require ('electron');
const path = require ('path');
let execPath;
execPath = path.dirname (app.getPath ('exe'));
// or
execPath = path.dirname (process.execPath);
A partir d'un processus de rendu:
// If not already defined...
const { remote } = require ('electron');
const path = require ('path');
let execPath;
execPath = path.dirname (remote.app.getPath ('exe'));
// or
execPath = path.dirname (remote.process.execPath);
Aucune des réponses ci-dessus n'a fonctionné pour moi sous Windows 10.
process.env.PORTABLE_EXECUTABLE_DIR
renvoie le chemin du répertoire Temp.
Je l'ai fait travailler en utilisant:
process.env.INIT_CWD