Gérer les noms de fichier

Le problème exposé dans ce sujet a été résolu.

Bonjour à tous !

Je travaille sur un projet Java pour l'école, et je me pose une question : comment manipuler les noms de fichiers ? Voici en gros l'architecture de mon projet.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
.
├── AXIS-SOW-POC-backend
│   └── src
│       └── main/java/rocks/novateam/axis/sow/poc/backend
│           ├── ontology
│           │   └── TDBManager.java
│           └── servlets
│               └── importServlet.java
├── license
├── README.md
└── resources
    └── ontologies
        ├── datamodel.owl
        ├── functionalmodel.owl
        └── interoperabilitymodel.owl

Dans le fichier TDBManager.java, je dois stocker le chemin vers les fichiers .owl. Pour l'instant, je les ai codé en dur :

1
2
3
private static final String DATAMODEL_FILE = "E:\\Users\\richou\\src\\AXIS-SOW-POC-backend\\resources\\ontologies\\datamodel.owl";
private static final String FUNCTIONALMADEL_FILE = "E:\\Users\\richou\\src\\AXIS-SOW-POC-backend\\resources\\ontologies\\functionalmodel.owl";
private static final String INTEROPERABILITY_FILE = "E:\\Users\\richou\\src\\AXIS-SOW-POC-backend\\resources\\ontologies\\interoperabilitymodel.owl";

C'est dégueulasse, d'autant qu'on est à plusieurs sur le projet, et que du coup on utilise un Git, et que le nom de fichier est valable que chez moi.

Cependant, je ne sais pas comment m'y prendre pour faire ça proprement. Une idée ?

Salut,

Je sais que dans les autres languages, ce qui se fait est d'avoir un fichier configuration qui est dans le .gitignore et un autre standard, qui sert d'exemple. Quand tu lances ton app, soit tu fais remarquer que le fichier config n'existe pas, soit tu annonces que tu vas utiliser les valeurs qui sont dans le fichier standard. Ensuite, tu as une map qui te permet d'accéder à tes valeurs.

Un bon language de configuration est le YAML, j'imagine qu'il y a une lib pour Java.

Si tu envisages de distribuer ton application avec tous les fichiers qui vont avec, un bon moyen pourrait être de les inclure dans le jar. Si je me souviens bien, tu as les méthodes Class.getResource et Class.getResourceAsStream qui te permettent indifféremment de charger tes fichiers depuis le jar si l'application est exécutée dans sa version packagée, et qui les traite plus ou moins comme chemins relatifs si tu l'exécutes en mode non packagée pour le développement.

+0 -0

Si tu travailles sous Eclipse (probablement pareil pour les autres IDE) le chemin relatif serait "./ressources/*.owl"

Si tu travail en dur, dans ce cas là tu dois remonter dans tes dossiers avec ".." et y redescendre :)

Si ton application prend du volume, la solution du fichier de conf est bien meilleure ;)

Bon, au final, je crois que je me suis pris la tête pour rien. J'ai utilisé System.getProperty("user.dir") pour me rendre compte que l'application utilise le dossier racine du projet comme point de départ. Utiliser des chemins relatifs à partir de là fonctionne sans accroc.

Je garde l'idée de la config Yaml sous le coude, c'est vrai que c'est quand même plus propre. :p

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte