Bonjour,
je récupère une chaine de caractères (le path d'un fichier) et je voudrais savoir si ce fichier est une librairie.
Comment puis-je m'assurer qu'il s'agit d'une librairie ?
En dernier recours je testerais l'extension ...
Merci
Bonjour,
je récupère une chaine de caractères (le path d'un fichier) et je voudrais savoir si ce fichier est une librairie.
Comment puis-je m'assurer qu'il s'agit d'une librairie ?
En dernier recours je testerais l'extension ...
Merci
Tu veux donc savoir si un fichier JAR est une lib ou un "executable" avec un main ?
Si oui, il te suffit de chercher apres le manifest qui se trouve dans le jar et de regarde si celui ci contient un Main-Class.
Bonjour,
j'ai pas été très claire ... sorry !
Par code, je récupère une chaine de caractères qui est le path vers un fichier, ce fichier normalement doit être une librairie au sens c du terme.
Je peux bien sur m'assurer de son extension (*.a ou *.o) mais j'aurai aimé savoir si ya un moyen de s'assurer que ça soit une librairie comme on peut le faire avec un fichier :
if(object instanceof IBINARY) un truc comme ça ....
Merci
Ok,
IBINARY tu le sors de quelle librairie la ?
Sinon pour verifier que un fichier est d'un type, en general on chercher apres des info dans le fichier (Header). Comme par exemple les fichiers EXE commencent tour par les octets "MZ" (4D5A). Maintenant il existe peut etre des truc tout fait ... mais aucune idée....
en fait mon message a été déplacé, j'étais au départ sous me forum eclipse, car il s'agit d'un librairie eclipse : package org.eclipse.cdt.core.model;
Sur événement (ici clique sur un fichier dans un projet) tu peux récup le fichier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Object object = event.getApplicationContext(); if ((object != null) && (object instanceof EvaluationContext)) { IEvaluationContext ec = (IEvaluationContext)object; object = ec.getDefaultVariable(); if (object != null) { List<Object> list = (List<Object>) object; for (Object o : list) { if (o instanceof IBinary) {....
Oula je ne saurai t'aider la dessus désolé
Salut,
Tu peux tenter du reverse-engineering en affichant toutes les classes et interfaces implémentée par l'objet :
Ensuite à toi de voir si quelque chose correspond
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public static void printAll(Object o) { Class<?> c = o.getClass(); while (c != null) { // On affiche la classe : System.out.println(c); // Et toutes les interfaces déclarées : for (Class<?> i : c.getInterfaces()) System.out.println("\t" + i); // Puis on passe au parent : c = c.getSuperclass(); } }
a++
Salut !
rhaaa, déception je recupère un File ... donc c'est mort !
Tant pis il me reste encore la possibilité de tester l'extension, c'est moins clean mais bon ...
Merci pour le conseil, j'utilise souvent ce genre de "truc" mais là j'avais ne pas y avoir pensé ... la honte sur moi !
a+, bonne semaine !
chris
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