Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1067 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Histoire de chemin relatif...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Histoire de chemin relatif...

n°553412
Hermes le ​Messager
Breton Quiétiste
Posté le 29-10-2003 à 12:24:34  profilanswer
 

Voilà, j'arrive via un JFileChooser à récupérer le chemin en absolu du fichier sélectionné.
 
Je connais également le chemin (toujours en absolu) du fichier de ma fenêtre de travail.
 
Donc par exemple, je sélectionne un fichier css avec le JFileChooser, et j'ai : c:\truc\test.css
 
j'appelle le JFileChooser depuis c:\truc.
 
Existe-t-il un moyen d'avoir non pas c:\truc\test.css, mais bien seulement : truc\test.css
 
Je voudrais évidemment que si par exemple le fichier sélectionné est c:\test.css alors que je me trouve dans c:\truc\machin\ avoir à ce moment là : ../../test.css  
 
Est-ce que quelque chose existe déjà ? Où faut-il le faire soi-même ?
 
[:meganne]

mood
Publicité
Posté le 29-10-2003 à 12:24:34  profilanswer
 

n°553521
Hermes le ​Messager
Breton Quiétiste
Posté le 29-10-2003 à 13:56:32  profilanswer
 

Un peu de code pour vous aider :
 

Code :
  1. int retval = fileChooser.showDialog(fileChooser, null);
  2.  
  3.     if(retval == JFileChooser.APPROVE_OPTION) {
  4.       String fichier = fileChooser.getSelectedFile().getName();
  5.       String p = fileChooser.getSelectedFile().getPath();
  6.       String tst = buffer.getPath();
  7.       String ap = fileChooser.getSelectedFile().getAbsolutePath();
  8.       textArea.setSelectedText(ap);
  9.     }


 
fonctionne parfaitement, mais :
 

Code :
  1. int retval = fileChooser.showDialog(fileChooser, null);
  2.  
  3.     if(retval == JFileChooser.APPROVE_OPTION) {
  4.       String fichier = fileChooser.getSelectedFile().getName();
  5.       String p = fileChooser.getSelectedFile().getPath();
  6.       String tst = buffer.getPath();
  7.       String ap = fileChooser.getSelectedFile().getRelativePathForwardSlash(tst)();
  8.       textArea.setSelectedText(ap);
  9.     }


 
ne fontionne pas et renvoie :
 
 
reflection error: bsh.ReflectError: Method getRelativePathForwardSlash( java.lang.String ) not found in class'sun.awt.shell.Win32ShellFolder' : at Line: 56 : in file: C:\WINDOWS\.jedit\macros\perso\test-load.bsh : .getRelativePathForwardSlash ( tst )

n°553522
benou
Posté le 29-10-2003 à 13:56:51  profilanswer
 

je ne pense pas que ca existe, mais ca se fait sans trop de difficulté à coup de StringTokenizer...
mais du coup c'est pas très portable (faut rajouter manuellement des ".." :/)


---------------
ma vie, mon oeuvre - HomePlayer
n°553525
Hermes le ​Messager
Breton Quiétiste
Posté le 29-10-2003 à 13:58:11  profilanswer
 

On a posté en même temps... Regarde ce que j'ai trouvé dans la doc. Malheureusement, ça ne marche pas avec le getRelativePath, mais uniquement avec le getAbsolutePath   :/

n°553537
benou
Posté le 29-10-2003 à 14:01:50  profilanswer
 

Hermes le Messager a écrit :

On a posté en même temps... Regarde ce que j'ai trouvé dans la doc. Malheureusement, ça ne marche pas avec le getRelativePath, mais uniquement avec le getAbsolutePath   :/


elle est louche ton erreur. Tu es sûr que tu compiles avec la même vesion de java que tu executes ?


---------------
ma vie, mon oeuvre - HomePlayer
n°553540
benou
Posté le 29-10-2003 à 14:04:52  profilanswer
 

benou a écrit :


elle est louche ton erreur. Tu es sûr que tu compiles avec la même vesion de java que tu executes ?


merde j'avais pas vu. C'est sur file que tu essaye d'executer la méthode "getRelativePathForwardSlash". Ou est ce que tu l'as trouvé celle là ? elle existe pas  :pt1cable:


---------------
ma vie, mon oeuvre - HomePlayer
n°553541
Hermes le ​Messager
Breton Quiétiste
Posté le 29-10-2003 à 14:05:18  profilanswer
 

benou a écrit :


elle est louche ton erreur. Tu es sûr que tu compiles avec la même vesion de java que tu executes ?


 
Ben en fait c'est du BeanShell  :whistle:  Donc, c'est l'interprêteur qui me renvoie cette erreur. Mais ça ne l'explique pas quand même, vu que normalement, tous les objets des classes incluses sont utilisables. Il n'y a que la redéfinition d'objets qui est impossible à faire.

n°553542
Hermes le ​Messager
Breton Quiétiste
Posté le 29-10-2003 à 14:05:55  profilanswer
 

benou a écrit :


merde j'avais pas vu. C'est sur file que tu essaye d'executer la méthode "getRelativePathForwardSlash". Ou est ce que tu l'as trouvé celle là ? elle existe pas  :pt1cable:  


Je l'ai trouvé là :
 
http://www.cotsec.com/developers/a [...] a.io.File)
 

n°553544
benou
Posté le 29-10-2003 à 14:07:19  profilanswer
 

Hermes le Messager a écrit :

reflection error: bsh.ReflectError: Method getRelativePathForwardSlash( java.lang.String ) not found in class'sun.awt.shell.Win32ShellFolder'


pkoi il te coause de 'sun.awt.shell.Win32ShellFolder' ?? c'est sûr un file que tu essayes d'appeler la méthode ! [:mlc]
 
de toute façon j'ai vérifié, y a aucune méthode de ce nom dans toute l'api java !


---------------
ma vie, mon oeuvre - HomePlayer
n°553546
Hermes le ​Messager
Breton Quiétiste
Posté le 29-10-2003 à 14:08:09  profilanswer
 

benou a écrit :


pkoi il te coause de 'sun.awt.shell.Win32ShellFolder' ?? c'est sûr un file que tu essayes d'appeler la méthode ! [:mlc]
 
de toute façon j'ai vérifié, y a aucune méthode de ce nom dans toute l'api java !


 
et le lien que je te donne juste au dessus ?  :whistle:

mood
Publicité
Posté le 29-10-2003 à 14:08:09  profilanswer
 

n°553549
benou
Posté le 29-10-2003 à 14:10:23  profilanswer
 


ben tu l'utilises n'importe comment cette méthode !!! :/
 

Code :
  1. int retval = fileChooser.showDialog(fileChooser, null);
  2.  
  3.    if(retval == JFileChooser.APPROVE_OPTION) {
  4.      String fichier = fileChooser.getSelectedFile().getName();
  5.      String p = fileChooser.getSelectedFile().getPath();
  6.      String tst = buffer.getPath();
  7.      String ap = FileUtil.getRelativePathForwardSlash(fileChooser.getSelectedFile().getAbsolutePath(), tst);
  8.      textArea.setSelectedText(ap);
  9.    }

 
 
ca devrait mieux marcher ...


---------------
ma vie, mon oeuvre - HomePlayer
n°553553
benou
Posté le 29-10-2003 à 14:10:49  profilanswer
 

Hermes le Messager a écrit :


et le lien que je te donne juste au dessus ?  :whistle:  


arrête de poster en même temps que moi :o


---------------
ma vie, mon oeuvre - HomePlayer
n°553555
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 29-10-2003 à 14:11:00  profilanswer
 

Hermes le Messager a écrit :


et le lien que je te donne juste au dessus ?  :whistle:  


C'est pas dans le SDK, c'est un utilitaire :o Tu l'as chopée où, cette classe FileUtil ? T'as un JAR qui va avec ?


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°553558
Hermes le ​Messager
Breton Quiétiste
Posté le 29-10-2003 à 14:12:31  profilanswer
 

benou a écrit :


ben tu l'utilises n'importe comment cette méthode !!! :/
 

Code :
  1. int retval = fileChooser.showDialog(fileChooser, null);
  2.  
  3.    if(retval == JFileChooser.APPROVE_OPTION) {
  4.      String fichier = fileChooser.getSelectedFile().getName();
  5.      String p = fileChooser.getSelectedFile().getPath();
  6.      String tst = buffer.getPath();
  7.      String ap = FileUtil.getRelativePathForwardSlash(fileChooser.getSelectedFile().getAbsolutePath(), tst);
  8.      textArea.setSelectedText(ap);
  9.    }

 
 
ca devrait mieux marcher ...
 


 
ça fait 2 jours que je fais du java...  [:yaisse2]  :lol:  (En tous cas merci ;) )

n°553559
benou
Posté le 29-10-2003 à 14:12:49  profilanswer
 

Taiche a écrit :


C'est pas dans le SDK, c'est un utilitaire :o Tu l'as chopée où, cette classe FileUtil ? T'as un JAR qui va avec ?


ben nan mais il essaye de l'appeler sur java.io.File avec un paramêtre alors que c'est une méthode static à 2 paramêtres, alors ca marche beaucoup moins bien, forcément ([:cherrytree1])


---------------
ma vie, mon oeuvre - HomePlayer
n°553569
Hermes le ​Messager
Breton Quiétiste
Posté le 29-10-2003 à 14:20:09  profilanswer
 

Humm, il me dit ça maintenant... :
 

Citation :

Typed variable declaration : Attempt to invoke method: getRelativePathForwardSlash() on undefined variable or class name: FileUtil : at Line: 66 :

n°553575
benou
Posté le 29-10-2003 à 14:23:14  profilanswer
 

Hermes le Messager a écrit :

Humm, il me dit ça maintenant... :
 

Citation :

Typed variable declaration : Attempt to invoke method: getRelativePathForwardSlash() on undefined variable or class name: FileUtil : at Line: 66 :




ouais mais bon, là t'as oublié de passer par la case départ :o
 
faut que tu ajoutes "import com.cotsec.util.io.FileUtil;" en haut de ta classe ...  :pfff:


Message édité par benou le 29-10-2003 à 14:29:51

---------------
ma vie, mon oeuvre - HomePlayer
n°553581
Hermes le ​Messager
Breton Quiétiste
Posté le 29-10-2003 à 14:30:24  profilanswer
 

Ne t'énerve pas. :)  
 
Tu as raison, je ne devrais pas poser toutes ces questions puisque j'ai de grosses lacunes (et c'est bien normal, puisque je débute complêtement pour le java).
Si je grille les étapes, c'est pour la bonne cause : je fais des plugins pour jEdit. ça ne m'empêchera pas de faire ce qu'il faut pour manger toutes les bases dont j'ai besoin.
 
Ceci dit, j'avais bien fait ça :
 

Code :
  1. import java.awt.event.*;
  2. import java.io.*;
  3. import javax.swing.*;
  4. import java.lang.*;
  5. import com.cotsec.util.io.FileUtil.*;
  6. JButton fileButton = new JButton("Open" );
  7.   JFileChooser fileChooser = new JFileChooser(buffer.getPath());
  8.  
  9.   JScrollPane scrollPane = new JScrollPane();
  10.   JTextArea textAreas = new JTextArea();
  11.   String fichierContenu = "";
  12.     fileChooser.setSize(300, 200);
  13.  
  14.      int retval = fileChooser.showDialog(fileChooser, null); 
  15.    
  16.      if(retval == JFileChooser.APPROVE_OPTION) { 
  17.          String fichier = fileChooser.getSelectedFile().getName(); 
  18.          String p = fileChooser.getSelectedFile().getPath(); 
  19.          String tst = buffer.getPath(); 
  20.          String ap = FileUtil.getRelativePathForwardSlash(fileChooser.getSelectedFile().getAbsolutePath(), tst); 
  21.          textArea.setSelectedText(ap); 
  22.      }

n°553586
benou
Posté le 29-10-2003 à 14:39:42  profilanswer
 


je m'ennerve pas ...  
c'est juste que là c'est la base de la base ...
 
relis bien ce que j'ai mis :  
import com.cotsec.util.io.FileUtil;
 
pas de .* à la fin !
 


---------------
ma vie, mon oeuvre - HomePlayer
n°553611
the real m​oins moins
Posté le 29-10-2003 à 15:02:22  profilanswer
 

:D


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°553613
the real m​oins moins
Posté le 29-10-2003 à 15:03:04  profilanswer
 

à dans 2 minutes :hello:
(il faut foutre la class dans le classpath - relativement à son package)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Histoire de chemin relatif...

 

Sujets relatifs
[resolu] espace dans un chemin de fichier[VB6] Chemin d'accès à IE
jar et chemin relatif ?jar et chemin relatif ?
Histoire de psychopate[HTML] textarea et histoire de taille
Include chemin absolu marche plus depuis réinstallFaire passer un chemin à un script JS ?
Histoire de css et de chemin relatif ... 
Plus de sujets relatifs à : Histoire de chemin relatif...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR