IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

[URL et File] Construire un objet File à partir d'une URL


Sujet :

Langage Java

  1. #1
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 859
    Points : 4 813
    Points
    4 813
    Par défaut [URL et File] Construire un objet File à partir d'une URL
    Bonjour

    Voici mon problème. Je veux créer une application Java Web Start. Dans cette application, je veux pouvoir lister un répertoire. Pour ce faire, j'effectue le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    File repertory = null;
    		try{
    			java.net.URL url = new java.net.URL("file", "xxx.xxx.xxx.xxx", "/~gldavid/MyProject/Plugins");
    			repertory = new java.io.File(url.toURI());
    		}
    		catch(java.net.MalformedURLException maurle){
    			JOptionPane.showMessageDialog(this.mw, maurle.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
    		}
    		catch(java.net.URISyntaxException urise){
    			JOptionPane.showMessageDialog(this.mw, urise.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
    		}
    		File[] files = repertory.listFiles();
    		Vector<String>zips = new Vector<String>();
    		for(File f : files){
    			if(f.isDirectory())
    				zips.add(f.getName());
    		}
    Or, à l'exécution, j'ai cette erreur que je ne sais pas réparer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.lang.IllegalArgumentException: URI has an authority component
    Quelqu'un pourrait t'il m'indiquer la bonne marche à suivre ?
    Merci d'avance.

    @++

  2. #2
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Bizarre ton erreur jamais eu. Est ce que ton java web Start utilise un jar signé? As-t-il les droits en lecture sur ton fichier en question.

    Si tu met le chemin en dur dans le code, ca passe?

  3. #3
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 859
    Points : 4 813
    Points
    4 813
    Par défaut
    Hello

    Normalement, j'ai mon code a accès à tout le repertory en JWS et mon Jar est signé.
    Je me demande si je procède comme il faut. Mon but étant simplement de prendre un chemin vers un répertory et de lister son contenu.

    @++

  4. #4
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Si c'est comme ca qu'il faut procédé.
    As tu essayé avec le chemin en dur pour test?

  5. #5
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 859
    Points : 4 813
    Points
    4 813
    Par défaut
    C'est bizarre.
    Quand je veux accéder au répertoire avec mon browser via l'URL avec pour protocole file, je n'ai pas accès. En revanche, par http, pas de problème.
    Donc, du coup, je je me dis, je passe alors par le protocole http, et paf ! Même résultat !
    Y a t'il vraiment quelque chose que j'ai oublié ?
    En tout cas, merci à toi, maxf1, de m'aider.

    @++

  6. #6
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    La classe File n'accepte que les fichiers en local, et refusera donc qu'il y ai un nom d'hôte dans l'URL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.net.URL url = new java.net.URL("file", null, "/~gldavid/MyProject/Plugins");
    Citation Envoyé par GLDavid
    Quand je veux accéder au répertoire avec mon browser via l'URL avec pour protocole file, je n'ai pas accès. En revanche, par http, pas de problème.
    C'est normal : le protocole file:// représente les fichiers qui sont accessible via le système de fichier de l'OS. Tu ne peux donc pas accéder à des fichiers à distance (à moins que cela ne passe par un protocole reconnu par le système, comme SMB/Samba par exemple).

    Le protocole HTTP lui permet justement d'accéder à des ressources à distance, mais la classe File ne le reconnais pas car cela ne représente pas vraiment des "fichiers"...


    Le mieux serait de savoir ce que tu veux faire exactement avec ce code

    a++

  7. #7
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 859
    Points : 4 813
    Points
    4 813
    Par défaut
    Salut adi

    Mon problème est "simple". Sachant que j'ai une application JWS, je veux pouvoir lister un répertoire fourni en URL. Est-ce que cela est possible sachant que l'appli sera héberger sur un serveur connu ?
    En tout cas, merci de tes premiers élémens de réponses.

    @++

  8. #8
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par GLDavid
    Mon problème est "simple". Sachant que j'ai une application JWS, je veux pouvoir lister un répertoire fourni en URL.
    En fait cela n'est pas si "simple". Je m'explique : le protocole HTTP ne permet pas de lister les fichiers d'un répertoire. En fait lorsque tu vois un listing sur ton navigateur, c'est le serveur HTTP qui génère une page HTML avec ce listing... Mais ce listing dépend du serveur HTTP et de sa configuration, donc il n'y a rien de standard...


    Pour faire un listing de répertoire à distance tu dois donc utiliser un protocole qui permet cela (FTP par exemple) et donc utiliser une librairie qui gère ce type de protocole...


    Citation Envoyé par GLDavid
    Est-ce que cela est possible sachant que l'appli sera héberger sur un serveur connu ?
    Mais si le serveur est connu, et que tu peux exécuter du code dynamique (Servlet/JSP, PHP ou autre), le plus simple serait d'utiliser un pseudo service web qui te renverrait le listing des fichiers dans un format XML facilement manipulable...



    Mais tu ne pourras en aucun cas utiliser la classe File qui ne permet que de représenter des fichiers en local...


    a++

  9. #9
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 859
    Points : 4 813
    Points
    4 813
    Par défaut
    Salut adi

    Ok, merci de ta réponse.
    Bon, et bien, il va me falloir trouver autre chose dans ce cas.
    Merci à toi pour ton aide.

    @++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer une url dans un input de type file
    Par kluck3000 dans le forum Langage
    Réponses: 2
    Dernier message: 20/02/2008, 04h21
  2. objet File à partir d'une URL
    Par dasc82 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 14/01/2008, 15h28
  3. [ java.net ] récupérer un fichier PDF à partir d'une URL
    Par nico2280 dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 10/11/2005, 11h09
  4. Copier un fichier à partir d'une URL ?
    Par oulahoup dans le forum ASP
    Réponses: 2
    Dernier message: 18/08/2005, 21h52
  5. [DOM] [JAVA + XML] Ouvrir un fichier xml à partir d'une url
    Par Hell dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 09/06/2005, 00h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo