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 :

Lecture d'un fichier caché (windows)


Sujet :

Entrée/Sortie Java

  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2010
    Messages : 394
    Points : 1 212
    Points
    1 212
    Par défaut Lecture d'un fichier caché (windows)
    Bonjour,

    Je rencontre un soucis lors de la lecture d'un fichier caché sous Windows. C'est un fichier dans lequel je stocke des informations sous la forme d'objets sérialisés. Je parviens à écrire le fichier avec les commandes suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    // Ouverture d'un flux de sortie vers le fichier specifie
    // PATH_FICHIER est une constante definissant le chemin du fichier voulu
    FileOutputStream fos = new FileOutputStream(PATH_FICHIER);
    // Creation d'un "flux objet" avec le flux fichier
    ObjectOutputStream oos = new ObjectOutputStream(fos);
    try {
         // Serialisation : ecriture de l'objet dans le flux de sortie
         oos.writeObject(monObjet);
         // On vide le tampon
         oos.flush();
    } finally {
         // Fermeture des flux
         try {
              oos.close();
         } finally {
              fos.close();
         }
    }
    Par contre, lorsque je procède de manière analogue pour lire le fichier, j'ai une execption (fichier introuvable). Le code pour la lecture est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    // Ouverture d'un flux d'entrée depuis le fichier specifie
    FileInputStream fis = new FileInputStream(PATH_FICHIER);
    // Creation d'un "flux objet" avec le flux fichier
    ObjectInputStream ois = new ObjectInputStream(fis);
    try {
         // Deserialisation : lecture de l'objet depuis le flux d'entree
         return (ClasseDeMonObjet) ois.readObject();
    } finally {
         // On ferme les flux
         try {
              ois.close();
         } finally {
              fis.close();
         }
    }
    A noter que ce même code fonctionnait correctement tant que le fichier en question n'était pas un fichier caché.

    Enfin, je rend le fichier caché de la façon suivante (code appelé après chaque écriture du fichier) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    String[] cmd = { "attrib", "+H",PATH_FICHIER };
    Process process = Runtime.getRuntime().exec(cmd);
    process.getOutputStream().close();
    process.getErrorStream().close();
    Si quelqu'un a une explication (et une solution...), je suis preneur.
    Merci.

    Mako.

  2. #2
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 021
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 021
    Points : 2 278
    Points
    2 278
    Par défaut
    Salut,
    je crois qu'il n'y a pas de solution en Java car Windows semble bloquer l'accès en écriture aux fichiers cachés. Le message de ton IOException ce ne serait pas "Accès refusé" ?
    Je verrais deux solutions :
    - repasser le fichier en -H avant l'écriture et utiliser process.waitFor() avant d'écrire dans le fichier
    - ne pas masquer le fichier mais le mettre dans un répertoire qui lui, est masqué.
    Vive les roues en pierre

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2010
    Messages : 394
    Points : 1 212
    Points
    1 212
    Par défaut
    Bonjour,

    J'ai opté pour la seconde solution, à savoir créer un répertoire, le rendre caché, et manipuler ensuite mon fichier dedans.

    Cela fonctionne nickel, et il n'y a plus de problème ni à la lecture, ni à l'écriture.

    Merci beaucoup.

    Mako.

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

Discussions similaires

  1. Reprendre la lecture d'un fichier swf après l'avoir caché
    Par Eric2a dans le forum Balisage (X)HTML et validation W3C
    Réponses: 0
    Dernier message: 02/08/2011, 22h28
  2. Créer un fichier caché sous Windows
    Par ArnaudFu dans le forum C++
    Réponses: 13
    Dernier message: 29/05/2011, 22h32
  3. Ecriture / Lecture dans un fichier Caché
    Par liavart dans le forum Général Java
    Réponses: 0
    Dernier message: 04/11/2009, 18h17
  4. Réponses: 8
    Dernier message: 25/02/2009, 15h52
  5. probleme windows form, lecture dans un fichier texte
    Par fbarbin dans le forum Windows Forms
    Réponses: 2
    Dernier message: 08/09/2008, 14h06

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