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 :

Génération automatique de noms de fichiers


Sujet :

Langage Java

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    245
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 245
    Points : 106
    Points
    106
    Par défaut Génération automatique de noms de fichiers
    Bonjour,

    Je développe un module de gestion de smileys. L'utilisateur fournit une chaîne unique, et une image associée.

    Je cherche un moyen de déterminer un nom de fichier pour l'image. La chaîne fournie aurait été une bonne idée, mais elle est susceptible de contenir des caractères spéciaux.

    Voyez-vous une méthode permettant d'obtenir une chaîne unique dans ces conditions, ou simplement de générer un nom de fichier dont on sait qu'il n'exist pas déjà dans un répertoire donné ?

    Merci.

  2. #2
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public String getNomFichierUnique(File dir, String prefix) throws IOException {
       if (!dir.isDirectory()) {
          throw new IOException(dir + " n'est pas un répertoire");
       }
       for (int count = 0;; count++) {
         String name = prefix + count;
         String file = new File(dir, name);
         if (!file.exists()) {
           return name;
         }
       }
       return null;
    }

  3. #3
    Membre averti Avatar de Chatbour
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 431
    Points : 305
    Points
    305
    Par défaut
    Salut à tous

    Citation Envoyé par herve91 Voir le message
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public String getNomFichierUnique(File dir, String prefix) throws IOException {
       if (!dir.isDirectory()) {
          throw new IOException(dir + " n'est pas un répertoire");
       }
       for (int count = 0;; count++) {
         String name = prefix + count;
         String file = new File(dir, name);
         if (!file.exists()) {
           return name;
         }
       }
       return null;
    }
    juste une petite correction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File file = new File(dir, name);
    Cordialement.

  4. #4
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Oui !

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    245
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 245
    Points : 106
    Points
    106
    Par défaut
    Oui, c'est une solution envisageable.

    J'avais laissé de côté car je pensais que le nombre généré était très long... mais pourquoi ne pas utiliser le hashCode de la chaîne représentant le smiley ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    String[] smileys = {":)", ":(", ":S", ":/"};
    for(String smiley: smileys) {
    	System.out.println(smiley + "\t" + smiley.hashCode());
    }
    :) 1839
    :( 1838
    :S 1881
    :/ 1845

  6. #6
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Le hashcode n'est pas garanti d'être unique.

  7. #7
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    245
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 245
    Points : 106
    Points
    106
    Par défaut
    Et la concaténation des codes ASCII de chacun des caractères de la chaîne ? :aie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    String[] smileys = {":)", ":(", ":S", ":/"};
    for(String smiley: smileys) {
    	StringBuffer code = new StringBuffer();
    	for(int i = 0; i < smiley.length(); ++i) {
    		code.append((int) smiley.charAt(i));
    		code.append('-');
    	}
    	code.deleteCharAt(code.length() - 1);
    	code.append(".jpg");
    	System.out.println(smiley + "\t" + code);
    }
    :) 58-41.jpg
    :( 58-40.jpg
    :S 58-83.jpg
    :/ 58-47.jpg

  8. #8
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Oui !!!

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

Discussions similaires

  1. Génération d'un nom de fichier de sortie à partir de donnée d'un tMap
    Par Slyvore dans le forum Développement de jobs
    Réponses: 5
    Dernier message: 10/04/2012, 14h57
  2. Inscription automatique du nom du fichier lors de la sauvegarde
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/07/2010, 09h31
  3. Génération automatique de noms de variables
    Par Bktero dans le forum MATLAB
    Réponses: 11
    Dernier message: 02/07/2009, 09h33
  4. Réponses: 15
    Dernier message: 27/02/2009, 13h28
  5. [Champ]Mise à jour automatique du nom de fichier
    Par joseph_p dans le forum Word
    Réponses: 7
    Dernier message: 23/05/2007, 08h43

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