bossun
Messages postés173Date d'inscriptionlundi 3 mars 2003StatutMembreDernière intervention15 décembre 2010
-
15 sept. 2006 à 11:22
bossun
Messages postés173Date d'inscriptionlundi 3 mars 2003StatutMembreDernière intervention15 décembre 2010
-
15 sept. 2006 à 18:54
salut,
Je cherche à acceder à un meme fichier par 2 processus différents en meme temps... je voudrais que le premier puisse l'ouvir en lecture ecriture... tandis que le second (et tous les autres) seulement en lecture...
J ai vu la classe FileStream mais je ne sais pas comment parametrer mon objet...
J'ai bien essayé de spécifier le FileShare à toutes les valeurs mais il me laisse toujours pas faire...
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 15 sept. 2006 à 12:34
le plus simple serait que tes process ouvrent le filestream, stockent le contenu du stream dans un MemoryStream/BufferStream en fermant le fileStream. si tu es ouvert en lecture seule, pas de probleme, ton fichier est lu comme il faut (mais tu n'aura pas les mises a jour sans coder plus).
si tu es en ecriture, tu flush régulièrement ton stream dans un fichier temporaire qui ecrasera lancien fichier a la fermeture de ton stream.
si tu veux etre notifié des mises a jour du fichier, soit tu décide du nom du fichier temporaire, et tu utilise un filesystemwatcher sur ce fichier, lorsque le process qui ecrit a finit son ecriture, il ferme le filestream, les process en lecture récupèrent les changements et ferment a leur tour.
Apres a toi de gérer les ressources afin que tout le monde n'essaie pas d'accéder en meme temps au fichier pour récupérer les données en lecture....
si qqun a une solution plus simple, je laisse proposer, mais la comme ca, je vois pas vraiment d'autre solutions