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

Java Discussion :

Système de fichiers virtuels


Sujet :

Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Système de fichiers virtuels
    Bonjour tout le monde,

    Je dois créer en utilisant Java et à partir de zéro un système de fichiers virtuels qui doit etre stocké dans un fichier unique sur le système de fichier concret. Le problème c'est que je n'ai pas bien compers ce que je dois créer exactement.
    Après réflexion de ma part, j'ai pensé à créer un arbre et mettre dans ces feuilles le chemin du fichier que je veux stocker. Est- ce que je compte entrain de faire est correct? Si non, est-ce que quelqu'un peut m'orienter sur la bonne voie?

    Merci beaucoup.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    En gros tu dois écrire un programme qui se comporte en quelque sorte comme un disque dur physique : c'est au final un fichier, dans lequel on peut stocker des fichiers. Mais aussi les repérer, comme on fait sur un disque dur habituellement : le système d'arbre est donc effectivement un système plutôt répandu (même si on pourrait en inventer d'autre).

    Il faut donc que tu commences par décrire un système de stockage de fichier (un disque dur) : tu peux t'inspirer de système existant comme FAT, NTFS, EXT4...etc... En simplifiant, parce que sinon, ça peut être relativement long de simuler un système de fichier. En simplifiant, donc, il y a un catalogue (l'arbre de dossiers), et des descriptions de fichier (leur nom par exemple) et leur contenu. Il te faut donc développer un programme qui permet de créer, supprimer des dossiers ou des fichiers dans des dossiers, d'écrire dans ces fichiers, de lire le contenu de ces fichiers, de retrouver leurs informations (nom, taille, peut-être date de création, modification, etc..., etc. Le mieux étant qu'on puisse interagir avec ce système en utilisant les classes standards de Java : File ou Path, InputStream/OutputStream, Reader/Writer...

    Pour la réalisation technique, il te faudra déterminer un format pour stocker les données dans le fichier. Et penser qu'on doit pouvoir écrire n'importe où dedans à n'importe quel moment. On peut choisir de tout réécrire à chaque modification, mais ça peut être lourd selon la taille : pense qu'un arbre peut varier beaucoup et que si tu modifies des entrées dans l'arbre en insérant ou retirant des noeuds, ça pourra être complexe de modifier le fichier sans tout réécrire.
    Personnellement, j'opterais pour un fichier de taille fixe dès le départ (la taille du disque en quelque sorte), avec un RandomAccessFile : une gestion simplifiée de table d'allocation de taille fixe (et simple, genre liste = l'arbre à plat) pour commencer (quitte si tu as le temps de faire du multi table, avec un chaînage), et une gestion simplifiée de secteur (avec une fonction super simple de défragmentation).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci pour la réponse détaillée!

    J'ai vu dans java doc la classes File, et c'est facile de créer un fichier en l'utilisant. Mais le prof nous a dit de ne pas utiliser la classe File, donc il n'attend pas de nous un programme complet( j'ai commencé java il y a deux mois).

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    La classe File, c'est pour des fichiers pas virtuels. Donc on s'en doute bien que tu es pas censé t'en servir. (Sauf peut-être à la rigueur pour créer un fichier qui représentera ton espace disque dans lequel tu mettras un système de fichiers virtuel.)
    Ça a rien à voir avec un programme complet ou non, c'est juste la question de si oui ou non tu fais le devoir qui t'a été donné.

    Maintenant je confirme, c'est pas un débutant qui va faire un vrai système de fichiers, ni en deux mois, ni en cinq ans.
    L'idée je pense, est de faire un truc qui permet de dire "alors il y a tels fichiers dans mon système de fichier, celui-ci il a telle taille et c'est de là à là dans l'espace disque, ce fichier-là il est là-bas, et vous avez à peu près telle quantité de place libre sur le disque."
    Enfin bon, si ton école te dit de faire ça, c'est que tu es censé avoir reçu une éducation qui te permet de comprendre ce qu'elle te demande, ou bien que ça va venir dans pas longtemps.

    Pour des experts, c'est un peu difficile de deviner qu'est-ce que tes profs veulent évaluer ou pas.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Quand je disais d'utiliser la classe Fil, ou Path, c'était juste pour avoir un système standard de représentation de chemins d'accès.
    C'est sûr que dans le cadre d'un projet de débutant, ce sera plus simple de faire ta propre classe pour gérer les chemins d'accès (de toute manière, s'il te faut gérer des dossiers, donc des chemins à multiples niveaux, tu auras au minimum besoin de représenter ça et de faire un minimum de manipulations (découper en noms suivant des / en tout cas), donc autant faire une classe que de tout gérer avec juste des String et des méthodes utilitaires, surtout que c'est aussi simple à programmer dans les 2 cas, et plus pratique à utiliser avec un classe, à mon avis.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/02/2014, 14h21
  2. Créer un système de fichier virtuel
    Par ForgetTheNorm dans le forum Linux
    Réponses: 1
    Dernier message: 06/01/2014, 17h39
  3. Utilisation systéme de fichier virtuel ou non
    Par Stopher dans le forum Administration système
    Réponses: 7
    Dernier message: 31/03/2012, 09h39
  4. Peut on manipuler le système de fichier par T-SQL?
    Par WOLO Laurent dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 22/12/2003, 09h19
  5. Le système de fichiers utilisé ?
    Par KORTA dans le forum C
    Réponses: 2
    Dernier message: 17/09/2003, 21h46

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