it-swarm-pt.tech

Node.js - Encontre o diretório home na maneira agnóstica da plataforma

Process.platform retorna "win32" para o Windows. No Windows, o diretório pessoal de um usuário pode ser C:\Users [USERNAME] ou C:\Documents and Settings [USERNAME], dependendo de qual versão do Windows está sendo usada. No Unix, isso não é um problema.

165
Matthew

Como mencionado em ma resposta mais recente , o caminho preferido é agora simplesmente:

const homedir = require('os').homedir();

[Resposta Original] : Por que não usar a variável de ambiente USERPROFILE no win32?

function getUserHome() {
  return process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'];
}
257
maerics

os.homedir() foi adicionado por este PR e é parte da versão 4.0.0 pública do nodejs.


Exemplo de uso:

const os = require('os');

console.log(os.homedir());
211
Cody Allan Taylor

Bem, seria mais preciso contar com o recurso e não com um valor variável. Especialmente porque existem duas variáveis ​​possíveis para o Windows.

function getUserHome() {
  return process.env.HOME || process.env.USERPROFILE;
}

EDIT: como mencionado em uma resposta mais recente, https://stackoverflow.com/a/32556337/103396 é o caminho certo a seguir (require('os').homedir()).

78
Oncle Tom

Use osenv.home(). É mantido por isaacs e acredito que é usado pelo próprio npm.

https://github.com/isaacs/osenv

15
Andrew De Andrade
getUserRootFolder() {
  return process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE;
}
0
aH6y