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:
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:
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:
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.