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

Entrée/Sortie Java Discussion :

Copie d'un fichier et chemin absolu


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 8
    Par défaut Copie d'un fichier et chemin absolu
    Salut,

    bon je suis un peu (beaucoup même) newbie en Java, et je bosse actuellement sur un projet.

    Je dois créer un site de commerce en ligne (techno servlet) en utilisant JBoss et une base de données hsqldb.

    Là j'essaye de faire correspondre une image à chacun des produits de ma base. Dans ma partie admin (là où il est possible d'ajouter / supprimer / editer des produits) j'utilise les JFileChooser pour ouvrir une boite de dialogue. Ainsi, l'administrateur peux aller chercher un fichier d'image sur son disque, et ça copie ce fichier dans un répertoire spécifique. C'est là que les problèmes commencent... J'arrive à créer le JFileChooser, à copier le fichier selectionné, mais impossible de lui spécifier un chemin de répertoire absolu...

    J'aimerai être capable de copier le fichier sélectionné dans un répertoire, mais avec un chemin absolu (et donc non relatif à mon projet...).

    Si quelqu'un à une idée, je suis preneur ;-)

  2. #2
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Un petit peu de code ? Et le problème précis que tu rencontres ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 8
    Par défaut
    Ici je crée mon JFileChooser qui m'ouvre donc une boite de dialogue pour que l'administrateur puisse aller chercher, sur son disque, un fichier d'image.

    Une fois que le fichier est sélectionné, je fait un appel à la méthode copyFile qui est en charge de copier le fichier selectionné dans un nouveau répertoire...

    C'est au moment de la copie que je n'arrive pas à donner un répertoire avec un chemin absolu. Par exemple j'aimerai que les images soient copiées à la racine de mon disque dur dans : Projet/prod_pictures/

    public void actionPerformed(ActionEvent evt) {

    JFileChooser chooser = new JFileChooser();

    chooser.setApproveButtonText("Choix du fichier..."); //intitulé du bouton

    chooser.showOpenDialog(null); //affiche la boite de dialogue
    if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION)
    {
    status.setText(chooser.getSelectedFile().getPath()); //si un fichier est selectionné, récupérer le fichier puis sont path et l'afficher dans le champs de texte
    File f1 = chooser.getSelectedFile();
    File f2 = new File("test/" + f1.getName());

    String path = f1.getAbsolutePath();

    try {
    copyFile(f1, f2);
    }
    catch(Exception e){

    }
    }
    }

    public static void copyFile(File src, File dest) throws IOException {
    if (!src.exists()) throw new IOException("File not found '" + src.getAbsolutePath() + "'");

    BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(dest));
    BufferedInputStream in = new BufferedInputStream(new FileInputStream(src));

    byte[] read = new byte[128];
    int len = 128;
    while ((len = in.read(read)) > 0)
    out.write(read, 0, len);

    out.flush();
    out.close();
    in.close();
    }

  4. #4
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut

    Sinon ben simplement à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    File f2 = new File("test/" + f1.getName());
    tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    File f2 = new File("C:\\Projet\\" + f1.getName());

  5. #5
    Membre très actif
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    321
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 321
    Par défaut
    Citation Envoyé par chtig

    Sinon ben simplement à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    File f2 = new File("test/" + f1.getName());
    tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    File f2 = new File("C:\\Projet\\" + f1.getName());
    Dans un soucis de portabilité, il vaudrait mieux faire abstraction des \ et / en preferant la methode ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    File f2 = new File("C:" + File.separator + "Projet" + File.separator + f1.getName());

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 8
    Par défaut
    Merci de vos réponses (et désolé pour l'oublie de la balise)... Je ne savais pas comment faire et je me suis aperçu que ça faisait vraiment.... "crade" !

    Les solutions que vous me donnez sont bien, en effet, mais si (comme moi), l'utilisateur est sur un Mac ?? Ou même sur un Unix quelconque... il va y avoir un problème ^^

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

Discussions similaires

  1. [XL-2003] lien hypertext : chemin absolu pour une copie de celulle entre deux fichier
    Par leprechaun dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 07/07/2009, 14h20
  2. Accès fichier Chemin absolu
    Par psal78 dans le forum Langage
    Réponses: 8
    Dernier message: 04/06/2007, 18h52
  3. Réponses: 1
    Dernier message: 28/09/2006, 13h09
  4. [Batch] chemin absolu / Nom de fichier
    Par andlio dans le forum Windows
    Réponses: 3
    Dernier message: 03/08/2006, 03h40
  5. [langage] chemin absolu d un fichier
    Par nono1782 dans le forum Langage
    Réponses: 4
    Dernier message: 20/07/2004, 14h02

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