Process.platform renvoie "win32" pour Windows. Sous Windows, le répertoire de base d'un utilisateur peut être C: \ Users [USERNAME] ou C: \ Documents and Settings [USERNAME] selon la version de Windows utilisée. Sous Unix, ce n'est pas un problème.
Process.platform renvoie "win32" pour Windows. Sous Windows, le répertoire de base d'un utilisateur peut être C: \ Users [USERNAME] ou C: \ Documents and Settings [USERNAME] selon la version de Windows utilisée. Sous Unix, ce n'est pas un problème.
Réponses:
Comme mentionné dans une réponse plus récente , la méthode préférée est maintenant simplement:
const homedir = require('os').homedir();
[Réponse originale] : Pourquoi ne pas utiliser la USERPROFILE
variable d'environnement sur win32?
function getUserHome() {
return process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'];
}
path.resolve()
pourrait fournir une certaine normalisation en termes de barres obliques de fuite, potentiellement étrange avant / barre oblique inverse, etc ... (surtout si vous avez des opérations de fichiers à l' esprit, après avoir obtenu cette information)
os.homedir()
a été ajouté par ce PR et fait partie de la version publique 4.0.0 de nodejs.
Exemple d'utilisation:
const os = require('os');
console.log(os.homedir());
os.homedir()
c'est un sacré nouveau jouet.
const os = require('os');
également ajouter
Eh bien, il serait plus précis de s'appuyer sur la fonction et non sur une valeur variable. D'autant plus qu'il y a 2 variables possibles pour Windows.
function getUserHome() {
return process.env.HOME || process.env.USERPROFILE;
}
EDIT : comme mentionné dans une réponse plus récente, https://stackoverflow.com/a/32556337/103396 est la bonne voie à suivre ( require('os').homedir()
).
\users\name
et USERPROFILE a c:\users\name
. Cette méthode n'est donc pas aussi précise et robuste que @maerics '
Utilisez osenv.home()
. Il est maintenu par isaacs et je crois qu'il est utilisé par npm lui-même.
oshome
utilise os-homedir
sous le capot, si vous ne voulez que cette fonctionnalité.