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 :

Manipuler des fichiers de type Unix sous Windows


Sujet :

Entrée/Sortie Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 22
    Points : 23
    Points
    23
    Par défaut Manipuler des fichiers de type Unix sous Windows
    Bonjour,

    Je suis en train de travailler sur un client Java qui doit donc tourner sous Windows et Linux. Ce client discute avec un serveur sous Linux.
    Une des tâches à faire est de recevoir des noms de fichiers absolus, de les manipuler, de les stocker et de les renvoyer au serveur. J'avais donc pensé à utiliser la classe File.
    Quand le client est sous Linux, aucun problème, puisque les deux implémentations sont identiques. Quand le client est sous Windows, il reçoit des chemins tels que et renvoie bien gentimement ce que le serveur ne peut pas comprendre.

    J'aimerai si possible ne pas recoder le parsing des chemins Unix sous Windows...

    Pour le début d'analyse que j'ai fait, la classe File utilise une instance statique de la classe abstraite FileSystem afin de normaliser les noms de fichiers. Sous Linux, il existe une implémentation nommée UnixFileSystem. J'imagine que sous Windows, il existe WindowsFileSystem. La classe File utilise la méthode native FileSystem.getFileSystem(), donc il est impossible de faire une substitution.

    Avez-vous déjà eu ce problème ? L'avez-vous résolu ? Suis-je assez clair ?

  2. #2
    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,


    Tu veux dire que le client doit spécifier un chemin de fichier présent sur le serveur c'est ca ?

    Dans ce cas utiliser la classe File est une erreur : cela représente un fichier "local" !

    a++

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 22
    Points : 23
    Points
    23
    Par défaut
    Oui, c'est ça, je dois faire des manipulations sur un nom de fichier qui se trouve sur le serveur.

    Bon la classe File représente un fichier local. Mais c'est une classe qui me permet de faire toutes les manipulations dont j'ai besoin comme getAbsolutePath, getParent. Et, comment dire, je n'ai pas envie de recoder tout ça, avec sûrement des erreurs

    C'est pour ça que je me demande s'il n'existe pas une classe du genre FileUtils qui permet de parser des noms de fichiers (unix ou windows). Je n'ai pas réussi à trouver mon bonheur du côté d'Apache pour l'instant. La classe UnixFileSystem conviendrait, mais elle est package protected, donc je serais obligé de copier coller le code dans mon projet, ce qui serait pas très propre

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 22
    Points : 23
    Points
    23
    Par défaut
    Alors, je me réponds, parce que j'avais raté quelque chose
    http://commons.apache.org/io/api-rel...nameUtils.html

    Dans commons.io, cela semble convenir à ce que je recherche. Ça fera une dépendance supplémentaire, mais on a rien sans rien.

  5. #5
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 620
    Points : 15 697
    Points
    15 697
    Par défaut
    Comme précisé dans la doc, cette dépendance est tout a fait dispensable

    en utilisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File f = new File(repertoire,"nom");
    Pour résoudre le différence de séparateur ("\" sous windows, "/" sous Unix) tu peux utiliser:
    Si tu veux les racines ("/" sous linux "C:, D:, ..." sous Windows):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File[] roots = listRoots();
    Ou sans doute plus utile, le répertoire utilisateur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new File(System.getProperty("user.home"));
    Ensuite comme dit Adiguba, File (tout comme la classe que tu as posté en lien) sert a manipuler des fichiers locaux. Si tu veux manipuler des fichier sur un serveur distant, ce n'est pas adapté a moins que le système de fichier de l'ordinateur distant n'ait été monté sur le système de fichier de l'ordinateur local.

Discussions similaires

  1. Manipulation des fichiers textes sous DELPHI
    Par riad.yahiaoui dans le forum Débuter
    Réponses: 9
    Dernier message: 24/04/2014, 16h47
  2. Copier des fichiers de type *.doc depuis sous rep
    Par kamezouj dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 05/05/2012, 21h45
  3. Traitement de fichiers Unix sous Windows avec AWK
    Par michel baily dans le forum Shell et commandes POSIX
    Réponses: 1
    Dernier message: 06/10/2011, 10h45
  4. [langage]parcours fichier txt en perl sous windows
    Par stef74 dans le forum Langage
    Réponses: 12
    Dernier message: 23/06/2005, 16h39
  5. Manipulation des fichiers
    Par monsau dans le forum Langage
    Réponses: 7
    Dernier message: 21/09/2004, 17h45

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