Quelle est la meilleure façon de trouver le répertoire de base d'un utilisateur arbitraire (pas nécessairement celui qui exécute le programme) sur un système de type Unix, compte tenu de leur nom d'utilisateur?Quelle est la meilleure façon de trouver le répertoire de base d'un utilisateur arbitraire en Java?
Je cherche à faire quelque chose comme ceci:
public void writeToHomeDirectory(String user){
File homeFolder = new File("~" + user);
File f = new File(homeFolder, "A File");
//f.writeStuff()
}
Cela ne fonctionne pas comme le « ~ utilisateur » ne se développe pas comme ceci est une caractéristique de la coquille. Y at-il un moyen de le faire en Java, ou est le seul moyen d'implémenter un shell avec Runtime.exec()?
Oui, cela semble être une bonne solution. Ne pouvons-nous pas lister les sous-répertoires dans/home/directory et trouver les répertoires personnels de tous les utilisateurs? –
Que faire si les utilisateurs ne sont pas stockés dans/home /? Ils ne sont pas sur notre réseau d'entreprise. Qu'en est-il de Windows? –
J'aime cette réponse, mais je crains que cela ne marche pas pour mes objectifs - nous devons inclure les utilisateurs du réseau (LDAP), qui ne sont pas listés dans/etc/passwd. Je me penche de plus en plus vers l'utilisation d'une commande shell comme "echo ~ user" ou "finger user". – Scott