web-dev-qa-db-fra.com

Comment utiliser app.getPath () d'électron pour stocker des données?

Je veux stocker des images sur l'ordinateur des utilisateurs, donc je pense qu'elles devraient être stockées dans le dossier de données des utilisateurs, comme décrit ici .

app.getPath(name)

name. Renvoie une chaîne - Un chemin d'accès à un répertoire ou un fichier spécial associé au nom. En cas d'échec, une erreur est générée. Vous pouvez demander les chemins suivants par leur nom:

  • home Répertoire personnel de l'utilisateur
  • appData Répertoire de données d'application par utilisateur, qui pointe par défaut sur:

    % APPDATA% sous Windows $ XDG_CONFIG_HOME ou ~/.config sous Linux ~/Library/Application Support sur macOS

  • userData Le répertoire de stockage des fichiers de configuration de votre application, qui par défaut est le répertoire appData ajouté avec le nom de votre application.

  • ...

Voici ce que je pense que vous êtes censé faire:

const app = require('electron');
alert(app.getPath('userData'));

Mais je reçois "getPath n'est pas une fonction". Je ne sais pas où le mettre. Cela ne fonctionne pas à partir de mon fichier html ou du fichier de rendu, et je ne sais pas comment l'utiliser à partir du fichier principal car il n'est pas lié à la page Web.

7
stackers

Compris grâce à this

const remote = require('electron').remote;
const app = remote.app;
console.log(app.getPath('userData'));
19
stackers

Voici ce que j'utilise lorsque j'ai besoin de basculer entre dev et release

const electron = require('electron');
export const userDataPath = (electron.app || electron.remote.app).getPath(
  'userData'
);
1
niksmac

Une autre façon d'éviter l'erreur "getPath n'est pas une fonction" consiste à faire fonctionner le code à la fois dans le processus de rendu et dans le processus principal:

const electron = require('electron');

const configDir =  (electron.app || electron.remote.app).getPath('userData');
console.log(configDir);
1
RedSandman