2010-10-23 9 views
3

Je crée un fichier temporaire sur le serveur, que quelqu'un télécharge. Pendant le test, il était bon d'utiliser le chemin complet du répertoire personnel dans mon ordinateur. Mais maintenant que je dois déployer sur un serveur, j'essayé d'utiliser un ~, mais je reçois unComment utiliser un ~ (répertoire relatif) dans ma classe java?

java.io.FileNotFoundException: ~/test/csvFile.csv (No such file or directory)

comment puis-je utiliser quelque chose d'analogue à un ~-à-dire à court pour le répertoire en * nix. J'utilise le paquet java.io.File.

Merci.

Répondre

3

Si vous voulez vraiment un fichier temporaire, vous devez cesser de se soucier de quel répertoire il se retrouve dans (généralement) et plutôt utiliser

File tempFile = File.createTempFile("csvFile", ".csv"); 
+0

ouais, beaucoup mieux. Merci! – theTuxRacer

7
System.getProperty("user.home") ; //will return the path to user home directory. 

Si je comprends correctement, vous cherchez comment obtenir le chemin dir utilisateur

+0

oui, c'est correct. – theTuxRacer

+0

life.java^_^Malheureusement, la réponse de Thilo était correcte, mais je vais l'upvoter car c'est utile! – theTuxRacer

+0

@Kaustubh P Ok que vous pouvez cocher sa réponse comme marqué :) :) –

3

~ est déchiffré par shell Unix, et non par votre programme. Pour obtenir le même effet, obtenir la valeur de « HOME »

System.getenv("HOME") 
2

La propriété système user.home pointe vers le répertoire de base de l'utilisateur actuel.

Cependant, vous pouvez envisager File.createTempFile() à la place pour les fichiers temporaires.

0

~ n'est pas un répertoire relatif. . est un répertoire relatif. ~ correspond à la valeur de la propriété système user.home. Cependant, java.io.File contient déjà plusieurs méthodes pour les fichiers temporaires: utilisez-les.

Questions connexes