scan de dossier (débutant) - Java - Programmation
Marsh Posté le 15-09-2005 à 17:28:07
déjà il y a quelques erreurs basiques :
- le mot clé est "String" et pas "string"
- tu as défini un constructeur "dossier (string _nomDeDossierCourant)" , tu dois t'en servir dans ton main pour instancier ta classe (et pas faire un temp.dossier qui n'est pas valide car il s'agit d'un constructeur et non d'une méthode)
- ta méthode getNomFichier() , elle retourne le nombre d'éléments ou un tableau avec tous ces éléments ?
... il y a d'autres trucs à discuter, mais ce sera pour plus tard
Marsh Posté le 15-09-2005 à 17:44:31
Avant de poster du code, tu ne penses pas que tu devrais au moins t'assurer qu'il COMPILE ???
Fondamentalement, pq ne pas utiliser java.io.File, qui "modélise" déjà valablement un fichier ? Là, effectivement, c'est tenter de faire de la P.O.O. pour le plaisir.
A part ça :
- Cf frabill;
- Nom de classe commence par une majuscule;
- Ta méthode "getNomDeFichier()" est abérrante : retourne-t-elle un nom de fichier, un tableau de je ne sais pas quoi ou un entier ?
- Qté d'autres trucs pour après.
Marsh Posté le 15-09-2005 à 18:04:16
oki String c'est corrigé
J'ai fais la modification pour le constructeur, est ce que c'est ca que tu voulais dire ?
et donc ouai, getNomFichier() retournerai un tableau de chaine de caractere.
Je l'ai mis dans un tab dans le main pour rendre que ca soit un peu plus clair.
Voila ce que ca donnerai :
Code :
|
[edit -> le but final n'est pas du tout juste d'afficher pour le plaisir
je souhaite ensuite réaliser une connexion a une base SQL et enregistrer tous les fichiers.
Mais j'ai envie de le coder et pas de repomper 3 codes et basta!
je ne connais pas java.io.file vu que c'est mon 1er jour de prog en java mais je vais me documenter un peu dessus]
Aie aie aie d'autres d'autre trucs qui ne vont pas ?
Marsh Posté le 16-09-2005 à 08:18:20
Ok pour le contructeur maintenant.
Ok aussi pour le tableau à une remarque près : ta fonction getNomFichier() devra avoir la signature suivante ( pas d'entier retourné mais un String [] ) :
Code :
|
Pour ce qui est de la méthode de faire, je te conseille de passer par la classe java.io.File et notament sa méthode listFiles() qui - pour un dossier - te retourne un tableau de File ( File [] ) pointants vers tous les "objets" ( fichiers + répertoires ) contenu à l'intérieur ( mais non récursivement ).
Il te suffira de faire faire une petite méthode récursive pour te balader récursivement dans les sous-répertoires.
Autre conseil : évite d'utiliser un tableau de String dans ta méthode récursive ( non optimisé ). Utilise plutot des objets implémentant java.util.Collection --> voir javadoc pour le plus approprié à ton cas ( unicité ou non, trié ou non etc... )
Marsh Posté le 16-09-2005 à 10:56:04
D'accord merci pour le conseil, je vais regardé dans cette direction
Une autre question, j'ai lu dans "penser en java" qu'il est fortement conseillé d'utiliser un fichier par class, je suppose donc que la classe contenant le main devra "appeler" ou "importer" les autres classes. De quelle maniere ca se présente dans le code ?
Marsh Posté le 16-09-2005 à 11:04:28
ash08 a écrit : D'accord merci pour le conseil, je vais regardé dans cette direction |
tu pourrais quand même chercher un peu par toi-même non ? C'est le genre de choses qui se trouve facilement dans les bouquins ou sur le net...
Essaye de compiler et si tu as des problèmes reviens ici...
Marsh Posté le 16-09-2005 à 14:58:47
Comme le dis Frabill, c'est vraiment la base du langage.
Ce n'est pas pour me moquer de toi ou chercher à faire le malin, mais à mon avis si tu bloques déjà là-dessus c'est pas la peine d'aller plus loin.
Je serais toi, je commencerais ... par le commencement. En prenant des exemples tout simples comme ceux proposés par les bouqins pour débutter en java.
Bon, sinon, je vais quand même répondre à ta question, mais promets-moi de cherche un peu aussi sinon ...
tu crée une classe Lancement ( fichier Lancement.java ) et tu mets dedans :
Code :
|
Marsh Posté le 19-09-2005 à 10:55:01
Yop les gens!
merci beaucoup pour votre aide.
Finalement je suis parti sur une seule classe appelé ScanSql.
J'arrive a réalisé le scan d'un dossier, la connexion a la base SQL, a faire une requete de select mais pas d'insertion.
Je vous met le code de suite.
Code :
|
En fait, il merde sur la ligne
Code :
|
Il me dit qu'il ne reconnait pas la method getName()
Alors pour débugguer, j'ai essayé de mettre une requette bidon :
Code :
|
Mais c'est pareil il met une erreur : Data truncated for column 'id' at rows 1
Pour cette derniere erreur j'ai matté dans google et on tombe sur une liste d'erreur sur le manuel de Mysql mais pas a quoi elle correspond
Merci d'avance pour votre aide.
Marsh Posté le 19-09-2005 à 13:23:50
ash08 a écrit : Yop les gens! |
Code :
|
de rien
Marsh Posté le 19-09-2005 à 13:57:29
plutot que :
Code :
|
utilise :
Code :
|
ton getName() devrait beaucoup mieux marcher...
Marsh Posté le 19-09-2005 à 18:14:16
Merci je n'ai plus l'erreur sur la method getName()
J'ai aussi ajouté "String" devant la variable sql qui n'était pas déclarer
En revanche, je me casse la tete sur la requete mysql qui devrait etre toute simple.
Code :
|
L'erreur est la suivante :
Exception in thread "main" java.sql.exception: Unknow table '1_fichier' in the field list.
1_fichier se trouve etre toujours le nom du 1er fichier scanner dans mon répertoire.
Mais la je suis perdu, j'ai beau relire et relire je vois pas
Marsh Posté le 15-09-2005 à 16:50:05
Yop tout le monde,
je voudrais faire un petit soft qui scan recursivement des dossiers.
Dans un 1er temps je me suis dit que je vais le faire en C ca ira vite vu que je lutte trop en POO
Pi finalement je me suis dit qu'il faut bien commencer 1 jour !!
Donc j'aimerai le faire en java, j'ai consulté le sujet pour noob et quelques pages du livre "penser en java" et avant de ma lancer tete baisser dans le code j'aurai voulu un peu de soutient sur la conceptualisation :
Je vais avoir une classe "dossier" et une classe "fichier" de la forme suivante:
J'ai encore beaucoup de mal a saisir l'interet de l'O.O. mais bon ca peut venir qu'en en fesant.
Est ce que ce genre de raisonnement colle a la POO ?
Est ce que je fonce droit dans le mur et ca va jamais marcher ?
je veux juste un peu comprendre
Merci d'avance pour toute aide !