question bête : comment fait-on pour obtenir le répertoire courant (celui où est la classe) sous forme de File ?
question bête : comment fait-on pour obtenir le répertoire courant (celui où est la classe) sous forme de File ?
Salut,
Il te suffit simplement de creer un File avec "." comme parametre:
et ensuite tu utilises les methodes de File suivant la forme du path que tu souhaites en retour. La javadoc pour cela est tres utile, http://java.sun.com/j2se/1.4.2/docs/api/index.html
Code : Sélectionner tout - Visualiser dans une fenêtre à part File f = new File(".");
bon courage.
Hello,
Au risque de dire un betise, je ne pense pas que cela soit possible.
Etant donnée que la classe est compilé et chargée en memoire...Je ne suis pas sur que l'on puisse avoir cette information.
Ou alors en bidouillant avec les proprietés system (user.dir,user.home).
Pourquoi as tu besoin de cette information?
Si tu as besoin de charger une fichier contenu dans le meme repertoire que ta classe utilise le ClassLoader..
lol déjà essayé bien sûr
sauf que quand tu fais un isFile() sur ton new File(".") il te sort false donc le File est inutilisable...
si cela est possible, avec ce que j'ai mis plus haut.
ta question c'etait de recuperer el repertoire courant pas de tester le repertoire courant alors dis moi exactement ce que tu veux faire?
De plus c'est tous a fait normal que :
File f = new File(".");
f.isFile();
te retourne fasle vu que ca te retourne un repertoire et qu'un repertoire n'est pas un file.
si tu fais un isDirectory il te renverra true.
je veux récupérer un fichier .ini qui est situé 2 répertoires plus haut que la classe dans mon arborescence
FAUX !!!!Envoyé par nsadon
public class File
extends Object
implements Serializable, Comparable
An abstract representation of file and directory pathnames.
voila j'ai tester pour toi, et j'arrive a recuperer un fichier deux repertoire en dessosu de mon fichier courant avec :
public static void main(String[] args) throws IOException {
File f = new File("..\\..\\notice.html");
System.out.println(f.getCanonicalPath());
}
l'affichage me donne bien le chemin de mon fichier donc pour ton fichier .ini c la meme chose, dis moi si c bien ca qui t'interresse?
oui
ce qui m'épate c'est que j'ai déjà essayé comme ça et ça a merdé je réessaye
à mon avis j'ai dû faire une erreur misérable c'est sûr si tu me dis que ça marche
thx en tout cas je mets résolu quand ça marche
on ne sait pas compris, quand je disais qu'un repertoire n'est pas un file je voulais simplement dire que la methode isFile te retourne forcement false lorsque tu teste sur un repertoire, car c pas ce que tu disais avant
heureusement que l'on peux utiliser les repertoire avec la class File sinon ca serait fortement limiter.sauf que quand tu fais un isFile() sur ton new File(".") il te sort false
desoler si on c'est aps compris
bon ba j'ai vraiment dû faire une erreur de merde parce que sur un test à côté ça marche comme ça
désolé pour ce post sans trop d'intérêt
Hello,
Si ton fichier .ini est dans le classpath... tu dois forcement pouvoir y acceder avec le classLoader... et je pense que ce sera bcp plus propre que d'essayer de manipuler des fichiers et des repertoires...
c'est une bonne idée mais il est pas dans le classpath c'est un fichier perso...
Hello,
Il y a une raison pour laquelle il ne peut pas etre dans le classpath?
quelqu'un peut-il m'expliquer ça plus en détail : en gros comment faire pour accéder au fichier ajouté au classpath ?Envoyé par fabszn
Hello,
Le ClassLoader te permet d'acceder à toutes les ressources defini dans le classpath.
Dans un premier temps, je te recommanderais d'aller lire la Javadoc.
Cette classe definie plusieurs methodes permettant d'acceder aux ressources definies dans le classpath.
Si ton fichier est dans les repertoires:
A l'aide du classLoader tu peux faire :%classpath%/titi/toto/tutu/fichier.ini
Tu auras un inputStream pointant sur ton fichier.ImputStream in =ClassLoader.getSystemResourceAsStream(/titi/toto/tutu/fichier.ini).
J'espere que cela t'aidera, si tu as des questions n'hesite pas!
ok j'avais déjà fait comme ça mais fatigué comme je suis j'avais oublié l'import de InputStream
merci bcp
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager